python - 如何在 Networkx 图上添加箭头
问题描述
我networkx
在 Python 中用 lib 制作了一个图表。现在我想在图表上的线条上添加箭头,但它接缝我做错了什么。这是我的代码:
import networkx as nx
analysis_graph = nx.Graph()
# I have also tried with DiGraph() but it still does not work
node_list = ["A", "B", "C", "D", "E", "F"]
analysis_graph.add_nodes_from(node_list)
#print(analysis_graph.nodes())
nx.draw(analysis_graph, with_labels = True)
relation_list = [['A', 'B'],
['A', 'C'],
['B', 'D'],
['C', 'E'],
['D', 'F'],
['E', 'D'],
['C', 'E'],
['B', 'D'],
['C', 'F'],
['A', 'E'],
['B', 'C'],
['B', 'F'],
['D', 'A']]
analysis_graph = nx.from_edgelist(relation_list)
print(nx.info(analysis_graph))
nx.draw(analysis_graph, with_labels = True, arrowsize=20, arrowstyle='fancy')
我究竟做错了什么?
解决方案
要绘制箭头,图形显然必须是一个DiGraph
对象。如果我更改以下行:
analysis_graph = nx.from_edgelist(relation_list)
到
analysis_graph = nx.from_edgelist(relation_list, create_using=nx.DiGraph)
我确实得到了所需的输出。
您之前尝试DiGraph
在第 2 行中实例化一个对象(忽略空格)
analysis_graph = nx.DiGraph()
没有效果,因为您analysis_graph
在调用nx.from_edgelist
. 你可能打算写的是
analysis_graph = nx.DiGraph()
analysis_graph.add_nodes_from(nodelist)
analysis_graph.add_edges_from(relation_list)
推荐阅读
- javascript - 在 Javascript 上比较并获取对象的一些值数组
- reactjs - 如何将列表“键”值作为嵌套组件中的道具传递?
- python - 使用curve_fit拟合列表中2个变量的数据
- vue.js - 创建一个简单的 VUE.JS 应用程序
- ios - 使用 UIViewPropertyAnimator 同步动画 CALayer 属性和 UIView
- sql - PLS-00103:遇到符号“SELECT”pl/sql 错误
- python - (Tkinter) 为什么 itemconfig 不改变我的对象的颜色?
- reactjs - 把所有东西都变成一个组件有什么害处吗?
- javascript - 在 es6 中使用 rollup.js
- java - 我无法从我的 java 生产者那里向我的 kafka 主题生成消息