如何在时标网络图中标注最早开始时间
在时标网络图中标注最早开始时间
本文介绍如何在使用 Python 的 NetworkX 库绘制的时标网络图中找到并标注每个节点的最早开始时间 (ES)。
步骤:
- 获取节点的 ES 值: 使用
nx.algorithms.dag.lexicographical_topological_sort(G)函数获取图G中所有节点的 ES 值。该函数返回一个按 ES 值排序的节点列表。2. 绘制时标网络图: 使用nx.draw_networkx()函数绘制时标网络图。3. 标注 ES 值: 遍历所有节点,使用plt.text()函数在每个节点上方添加一个标签,显示其 ES 值。
**代码示例:**pythonimport networkx as nximport matplotlib.pyplot as plt
定义图 G 和节点位置 pos (示例)G = nx.DiGraph()G.add_edges_from([(1, 2), (1, 3), (2, 4), (3, 4)])pos = {1: (0, 0), 2: (1, 1), 3: (1, -1), 4: (2, 0)}
获取最早开始时间es = nx.algorithms.dag.lexicographical_topological_sort(G)
绘制时标网络图plt.figure(figsize=(10, 5))nx.draw_networkx(G, pos, with_labels=True, node_size=500, node_color='lightblue', font_size=12, font_color='black')nx.draw_networkx_edges(G, pos, edge_color='gray', arrows=True)
标注最早开始时间for node, est in zip(G.nodes, es): label = f'ES: {est}' plt.text(pos[node][0], pos[node][1]+0.5, label, ha='center', fontsize=10, color='red')
plt.title('时标网络图')plt.axis('off')plt.show()
代码说明:
es = nx.algorithms.dag.lexicographical_topological_sort(G)获取图G中所有节点的 ES 值。*for node, est in zip(G.nodes, es):遍历所有节点及其对应的 ES 值。*label = f'ES: {est}'创建一个包含节点 ES 值的标签。*plt.text(pos[node][0], pos[node][1]+0.5, label, ha='center', fontsize=10, color='red')在每个节点上方添加 ES 值标签。
注意:
- 代码示例假设您已经定义了图
G和节点位置pos。* 您可以根据需要调整标签的字体大小、颜色和位置。
希望这篇文章能帮助您在时标网络图中标注节点的 ES 值!
原文地址: http://www.cveoy.top/t/topic/pqI 著作权归作者所有。请勿转载和采集!