2016-04-03 17 views
0

プロットしたいデータがあります.xとyは、この小さなサンプルコードと同じ形式です。pyplot、左からプロットする

import matplotlib.pyplot as plt 

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

この結果、非常に奇妙なグラフになります。私はそれが高xに低Xからのラインを描きたい など第三に、その後、第二に挿入された最初の点から線を引いているんが、私はに見えることができますどのようなpyplot wrong graph

これを行う良い方法を見つける。私は私のラインをこのようにしたい。

correct graph

私のxとyのデータを考えると、これを達成するための最も簡単な方法は何と同じ形式であるが、この例よりも複雑?

答えて

3

あなたが言及したようなグラフを得るために、あなたは、このように達成することができますソート順でxの値、持っている必要があります。

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

となりました(テストしていません)plotingのために、xとyを使用します。

あなたが同時にYを変更してご使用のXリストを並べ替えることができます
+2

https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.argsort.html ' np.argsort'は、このソートにも役立ちます。 – tacaswell

0

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() 
関連する問題