2016-04-27 237 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)所以它應該顯示第二列的當前值。 (中wp大小各不相同,所以我需要一個通用的解決方案。)

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

編輯:對不起,我犯了一個巨大的錯誤,當我是個懶人創造的例子矩陣。 x值都是不同的。編輯2:更精確。在這個例子中,x1的x值應該是0,而棒也是0.然後x2應該是正確的x1並且應該有x-tick 1. x3應該是正確的x2並且不應該顯示x-tick 。 x4應該是x3的正確值,並且應該有x-tick 2,等等。所以它應該繪製像plt.plot(wp [:, 0]),但在x軸上我想看看哪個區域,第二列是0或1或2或...

+0

什麼阻止您使用第二列作爲X值? – Goyo

+0

所以你想要你的元組中的所有第二個元素作爲你的x-tick標籤? – ThePredator

+0

@ The Predator。這是正確的,但所有例如[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