我在4个点之间定义了网络边缘,如下所示: 边缘= [(2,5),(2,4),(2,3),(3,5),(3,4),(3,2),(4,5),(4,4) ,(4,2),(4,3),(5,4),(5,2),(5,3)]
我想使用这些边缘绘制图形。这四个点的坐标为:
a = [1 0 -1 0]
b = [0,1,0,-1]
这是我写的函数:
def plot_current_graph(a,b,边):
for i in range(0, len(a)):
plt.plot(a,b,'ro')
xc = []
yc = []
for i in range(0, len(edges)):
xc.append(a[edges[i][0]-2])
xc.append(a[edges[i][1]-2])
#print xc
yc.append(b[edges[i][0]-2])
yc.append(b[edges[i][1]-2])
for i in range(0, len(edges), 2):
plt.plot(xc[i:i+2], yc[i:i+2], 'ro-')
plt.axis('equal')
plt.show()
plt.pause(1)
plt.clf()
我希望看到一个图形,其所有边都连接4个点,但是相反,此函数在单独的图形上一个接一个地绘制了一条边。 如何只绘制一个图形,同时绘制图形上的所有边? 我正在尝试在程序中使用此功能,该程序会在边缘变化时定期绘制新图形。
谢谢!
答案 0 :(得分:0)
这可能会给您带来以下好处:
edges = [(2, 5), (2, 4), (2, 3),(3, 5),(3, 4),(3, 2),(4, 5),(4, 4),(4, 2),(4, 3),(5, 4),(5, 2),(5, 3)]
a = [1, 0, -1, 0]
b = [0, 1, 0, -1]
def plot_current_graph(a,b, edges):
for i in range(0, len(a)):
plt.plot(a,b,'ro')
xc = []
yc = []
for i in range(0, len(edges)):
xc.append(a[edges[i][0]-2])
xc.append(a[edges[i][1]-2])
#print xc
yc.append(b[edges[i][0]-2])
yc.append(b[edges[i][1]-2])
for i in range(0, len(edges), 2):
plt.plot(xc[i:i+2], yc[i:i+2], 'ro-')
plt.axis('equal')
plt.show()
plt.pause(1)
plot_current_graph(a, b, edges)