作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 adjacency matrix A 和定义每个节点坐标的数组:
import numpy as np
import matplotlib.pyplot as plt
import networkx as nx
%matplotlib inline
Import adjacency matrix A[i,j]
A = np.matrix([[0, 1, 1, 0, 0, 1, 0],
[0, 0, 1, 1, 0, 0, 0],
[0, 0, 0, 1, 1, 1, 0],
[0, 0, 0, 0, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0]])
## Import node coordinates
xy = np.array([[0, 0],
[-20, 20],
[17, 27],
[-6, 49],
[15, 65],
[-20, 76],
[5, 100]])
我的目标是绘制显示节点如何相互连接的图表。因此,每条边都应该有一个箭头或双向箭头,指示沿着它前进的方向。
我能够显示连接,但没有箭头,即使我将参数指定为 True
。
## Draw newtwork
G = nx.from_numpy_matrix(A, xy)
nx.draw_networkx(G, pos=xy, width=3, arrows=True)
您能否建议我一种无需修改输入数据(A
和 xy
)即可实现我的目标的方法?
最佳答案
在某些时候,我对 networkx 绘图工具中缺乏适当的箭头支持感到非常恼火,于是自己编写了一个,同时保持 API 几乎相同。可以查到代码here .
import numpy as np
import netgraph
A = np.matrix([[0, 1, 1, 0, 0, 1, 0],
[0, 0, 1, 1, 0, 0, 0],
[0, 0, 0, 1, 1, 1, 0],
[0, 0, 0, 0, 1, 1, 0],
[0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0]])
xy = np.array([[0, 0],
[-20, 20],
[17, 27],
[-6, 49],
[15, 65],
[-20, 76],
[5, 100]])
N = len(A)
node_labels = dict(zip(range(N), range(N)))
netgraph.draw(np.array(A), xy / np.float(np.max(xy)), node_labels=node_labels)
关于python - 网络图在 Python 中不显示沿边的箭头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46150015/
我是一名优秀的程序员,十分优秀!