在时标网络图中标注最早开始时间

本文介绍如何在使用 Python 的 NetworkX 库绘制的时标网络图中找到并标注每个节点的最早开始时间 (ES)。

步骤:

  1. 获取节点的 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录