【发布时间】:2018-07-16 15:27:06
【问题描述】:
我有一个包含三列的 pandas 数据框(比如说 df):
src dst weight
a b 2
c d 7
b a 5
d c 1
d a 3
a a 4
b b 1
我想创建一个有向加权图。我尝试了以下方法,但无法在可视化中添加权重。
G = nx.from_pandas_dataframe(df,source='src', target='dst', edge_attr=['weight'], create_using=nx.DiGraph())
nx.draw_circular(G, with_labels=True)
plt.show()
任何建议如何可视化边缘的重量?此外,我有兴趣查看两个节点之间的两个方向的权重(如果存在双向连接)。我也有兴趣可视化以一定权重连接到自身的节点。例如,在样本数据中,节点“a”连接到节点“a”,权重为 4,您如何将其可视化为闭环连接之王?我正在使用 Networkx 库。
【问题讨论】:
-
你能打印 `G.edges(data=True") 吗?它在我的电脑上运行良好。
-
是的,这确实显示了重量。可能是我没有正确地想象它。如何在网络图上查看边的权重(一种权重标签)?
-
你可以用其他方法画出来。
-
别以为我有时间回答这个问题。建议:我认为您的数据中有拼写错误。另外,请通过提供具有预期输出的工作示例来明确您的答案。第三,在正文中编辑它而不是评论。
标签: python-3.x pandas networkx