pyplot,从左到右绘图

时间:2016-04-03 13:28:03

标签: python python-2.7 matplotlib

我想要绘制一些数据,x和y与这一小段示例代码的格式相同。

    import matplotlib.pyplot as plt

    y = [1,1,3,4]
    x = [1,4,2,3]
    plt.plot(x,y,'-o')
    plt.show()

这导致了一个非常奇怪的图表。 wrong graph

pyplot的作用是从第一个插入第二个点,然后到第三个点等等画一条线。 我希望它从low-x到high-x画一条线,但我似乎找到了一个很好的方法来做到这一点。我希望我的线条像这样。

correct graph

实现这一目标的最简单方法是什么,因为我的x和y数据格式相同但比这个例子更复杂?

2 个答案:

答案 0 :(得分:3)

要获得您提到的图表,您需要按照排序顺序在x中设置值,您可以这样实现:

z = sorted(zip(x,y))
x=[i[0] for i in z]
y=[i[1] for i in z]

现在使用x和y进行绘图(未测试)。

答案 1 :(得分:0)

您可以同时更改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()