2016-04-27 34 views
-1

私はmatplotlibと次の問題があります。私はこのNumpy-Matrixを持っています。今は完全に動作する最初の列plt.plot(wp[:, 0])をプロットします。さて、x軸については、(1..2..3..4..5..6..7..8..9)(この例では)Matplotlib x軸

と書いていますが、代わりに(0.1..2...3.4)としたいと思いますので、2番目の列の現在の値が表示されます。 (wpの大きさが変わるので、私は一般的なソリューションが必要です。)

wp=[[x1,0], 
[x2,1], 
[x3,1], 
[x4,2], 
[x5,2], 
[x6,2],  
[x7,3], 
[x8,3], 
[x9,4]] 

編集:私は怠け者だったと例行列を作成したときに申し訳ありませんが、私は、巨大なミスを犯しました。 x値はすべて異なっています。 Edit2:より正確にするにはこの例では、x1のx値は0になり、スティックも0になります。次に、x2はx1に正しくなければならず、x-tick 1でなければなりません。x3はx2に正しくなければならず、x-tickは表示されません。 x4はx3の右側にあり、x-tick2などが必要です。したがって、plt.plot(wp [:, 0])のようにプロットする必要がありますが、x軸上で2番目の列が0または1または2であるかどうかを確認する必要があります。

+0

2番目の列をX値として使用できない原因は何ですか? – Goyo

+0

タプルの2番目の要素をすべてx-tickラベルにしたいと思っていますか? – ThePredator

+0

@プレデター。それは正しいが、例えば[x3,1] [x4,1]はすべて同じx値を持つべきではない! – HighwayJohn

答えて

0
import matplotlib.pyplot as plt 
import numpy as np 

# creating random values for x1,x2 and x3 
x1 = 1 
x2 = 2 
x3 = 3 

wp=[[x1,0], 
[x2,1], 
[x3,1], 
[x1,2], 
[x2,2], 
[x3,2],  
[x1,3], 
[x2,3], 
[x3,4]] 


my_xticks = [x[1] for x in wp] # taking the second values from tuple 
my_xticks = list(set(my_xticks)) # removing duplicates 

# In [16]: my_xticks 
# Out[16]: [0, 1, 2, 3, 4] # values of my_xticks after removing duplicates 


x = [x[0] for x in wp] 
y = x 

plt.xticks(my_xticks) 
plt.plot(x, y) 
plt.show() 

enter image description here

+0

申し訳ありませんが、問題を説明しようとしたときに間違いました。編集を参照してください – HighwayJohn

関連する問題