按照单独绘制的顺序连接数据点 - matplotlib

时间:2016-01-16 08:28:16

标签: python for-loop matplotlib plot line

我正在尝试连接单独绘制的点,但我想按照它们绘制的顺序连接它们。我有一个数字列表,指的是一组点(有序对)。该列表说明了点的绘制顺序。

这些点位于字典P中。所以,让我们说P[1]P[2]P[3]。然后是list = (2, 1, 3)。我想绘制它,以便一行将P[2]P[1]连接到P[3]。其中P[i] = (x, y)是一些带有x坐标x和y坐标y的连音符。

正如我现在所说,我正在使用循环绘制点。这有效,但它没有连接点。任何帮助都会很棒!谢谢。

x=[-4, 2, -1, 5]
y=[-3, -2, 4, 2]
n = 3 #number of cities

P = dict()
P_0 = (x[0],y[0])

for i in range (1,n):
    P[i] = (x[i],y[i])

route = (2,1,3)
plt.plot([P_0[0]],[P_0[1]])
for k in range (0,n-1):
    plt.plot([P[route[k]][0]],[P[route[k]][1]])

2 个答案:

答案 0 :(得分:1)

在调用plot时,您需要提供x坐标作为列表,将y坐标作为单独的列表提供:

import matplotlib.pyplot as plt

x=[-4, 2, -1, 5]
y=[-3, -2, 4, 2]

plt.plot(x,y,'b-')

答案 1 :(得分:1)

这应该是一个合适的解决方案。

xnew=[x[i] for i in route]
ynew=[y[i] for i in route]

plt.plot(x,y)