我有一些我想要绘制的数据,x和y与这小块示例代码的格式相同。
import matplotlib.pyplot as plt
y = [1,1,3,4]
x = [1,4,2,3]
plt.plot(x,y,'-o')
plt.show()这导致了一个相当奇怪的图表。

pyplot所做的是从第一点插入到第二个,再到第三个等等,我想要它画一条从低x到高x的线,但是我似乎找到了一个很好的方法。我希望我的台词像这样。

考虑到我的x和y数据格式相同,但比本例更复杂,那么实现这一目标的最简单方法是什么?
发布于 2016-04-03 13:41:04
要获得您刚才提到的图,您需要按排序顺序使用x中的值,您可以这样实现:
z = sorted(zip(x,y))
x=[i[0] for i in z]
y=[i[1] for i in z]现在使用x和y绘制(未测试)。
发布于 2016-04-03 13:49:09
你可以通过同时改变y来排序你的x列表,
import matplotlib.pyplot as plt
y = [1,1,3,4]
x = [1,4,2,3]
for i in range(len(x)):
for k in range( len( x ) - 1, i, -1 ):
if ( x[k] < x[k - 1] ):
x[k-1],x[k]=x[k],x[k-1]
y[k-1],y[k]= y[k],y[k-1]
print x,y
plt.plot(x,y,'-o')
plt.show()https://stackoverflow.com/questions/36385970
复制相似问题