gpt4 book ai didi

python - 使用networkx绘制图形时,如何在边缘上使用颜色?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:19 26 4
gpt4 key购买 nike

使用 networkx 绘图时,我将如何对一组边缘使用颜色值?

例如,绘制 3 个节点,

edges = pd.DataFrame({'node_1': [1, 2, 3],
'node_2': [2, 3, 1],
'edge_id': [5, 4, 6]})

G = nx.from_pandas_edgelist(edges, 'node_1', 'node_2', True, nx.Graph())
nx.draw(G, node_size = 100)
plt.draw()
plt.show()

我如何能够使用这样的数据来为边缘着色?



draw = pd.DataFrame({'edge_id': [5, 4, 6],
'edge_colour': ['AE6017', 'F15B2E', 'F15B2E']})

最佳答案

您可以在单独的步骤中绘制边和节点。您可以在那里为其中任何一个提供颜色列表。为了分别绘制它们,首先需要计算它们的位置。对于大多数图形,最佳布局是通过调用 spring_layout 获得的。 .

演示代码:

import pandas as pd
import matplotlib.pyplot as plt
import networkx as nx

edges = pd.DataFrame({'node_1': [1, 2, 3],
'node_2': [2, 3, 1],
'edge_id': [5, 4, 6]})
G = nx.from_pandas_edgelist(edges, 'node_1', 'node_2', True, nx.Graph())

pos = nx.spring_layout(G)
nx.draw_networkx_nodes(G, pos, node_size = 100, node_color='deepskyblue')
cmap_colors = plt.cm.Set1.colors
edge_colors = [cmap_colors[edge_ind % len(cmap_colors)] for edge_ind in range(len(G.edges))]
nx.draw_networkx_edges(G, pos, width=1.0, edge_color=edge_colors)

plt.show()

result

或者,您可以将 nx.draw 替换为 nx.draw_networkxnx.draw_networkxnx.draw 类似,但允许更多选项。如果需要,您可以给出位置,如果不需要,它们会自动计算。它接受与 nx.draw_networkx_edges 相同的 edge_color=...

关于python - 使用networkx绘制图形时,如何在边缘上使用颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59757685/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com