ポイント (ノード) のペア間に線 (エッジ) を描く必要があるネットワーク プロジェクトに取り組んでいます。現在、これには matplotlib.pyplot を使用していますが、問題は pyplot.plot(x, y) が (x[0], y[0]) から始まり、(x[1], y[1 ]) など。
ノードの接続用に別のタプルのリストがあります:
edge=[(0,1), (0,2), (3,2), (2,1)...(m, n)]、個別のノードのインデックスを参照します。問題は、matplotlib.animation でアニメーション化する必要があることです。
ノード間に線を追加するだけで (静止画像)、ax.add_line(Line2D([x1, x2], [y1, y2])) を使用していましたが、このメソッドをアニメーションで動作させる方法がわかりません。 FuncAnimation()。
いくつかのダミーコード:
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()
それはすべて私が必要とする方法で機能します:
例.
残念ながら、これはアニメーション中は不可能です (私の知る限り)。次に必要なのは、ノードの個々のペア間に線をプロットする方法です。
問題の定式化が非常に悪いことはわかっていますが、誰かが理解し、助けてくれることを願っています。
ありがとうございました!