我正在做一个网络项目,我需要在成对的点(节点)之间绘制线(边)。目前我为此使用 matplotlib.pyplot,但问题是 pyplot.plot(x, y) 从 (x[0], y[0]) 开始,然后继续到 (x[1], y[1 ]) 等
我有一个单独的元组列表用于节点的连接:
edges=[(0,1), (0,2), (3,2), (2,1)...(m, n)],它指的是单独节点的索引。问题是我需要用 matplotlib.animation 来制作动画。
为了在节点之间添加线条(静态图片),我使用的是 ax.add_line(Line2D([x1, x2], [y1, y2])),但我不知道如何让这种方法与动画一起使用。函数动画()。
一些虚拟代码:
import matplotlib.pyplot as plt
edges = [(0,1), (2,3), (3,0), (2,1)]
x = [-5, 0, 5, 0]
y = [0, 5, 0, -5]
lx = []
ly = []
for edge in edges:
lx.append(x[edge[0]])
lx.append(x[edge[1]])
ly.append(y[edge[0]])
ly.append(y[edge[1]])
plt.figure()
plt.plot(x, y, 'ro')
plt.plot(lx, ly, '-', color='#000000')
plt.show()
(此图和下面的下一个示例)
如果我改为使用以下内容:
import matplotlib.pyplot as plt
from pylab import Line2D, gca
edges = [(0,1), (2,3), (3,0), (2,1)]
x = [-5, 0, 5, 0]
y = [0, 5, 0, -5]
plt.figure()
ax = gca()
for edge in edges:
ax.add_line(Line2D([x[edge[0]], x[edge[1]]], [y[edge[0]], y[edge[1]]], color='#000000'))
ax.plot(x, y, 'ro')
plt.show()
这一切都按我需要的方式工作:
示例。
不幸的是,在动画期间这是不可能的(afaik)。我需要的是一种在单个节点对之间绘制线的方法。
我知道非常糟糕的问题表述,但我希望有人理解并能够提供帮助。
谢谢!