2014-01-23 1050 views
0

經過多年閱讀stackoverflow我達到了一個問題,我無法找到答案,所以我從這裏開始。matplotlib自定義x軸與自定義數量的刻度

我正在使用python和matplotlib,並想從1開始繪製xaxis,沒有其他任何更改。

import matplotlib.pyplot as plt 

y = range(1, 1000, 2) 
plt.plot(y) 
plt.show() 

此地塊,但在x軸上從0開始我試圖提供一種X軸與

y = range(1, 1000, 2) 
plt.plot(y) 
plt.plot(range(1, len(y)+1), y) 
plt.show() 

,但是這並不能改變x軸本身。

我嘗試過的另一種方法是使用plt.xticks並自己設置刻度。

但後來我碰上的500個xticks問題正在繪製(甚至更多,如果y值包含大量的數據)。

我怎樣才能簡單地繪製數據顯示1而不是0在開始,沒有第一個元素的數據被排除在外或其他數據的變化?

回答

1

好吧,xlim不工作,但爲什麼不把1和1000放在xticks上?

plt.xticks([1, 1000]) 
+0

一個好主意,但不幸的是,它不能解決問題,如果值太多。使用xlim與y值作爲y = range(1,1000,2)仍然會給出0作爲繪圖的開始。它是否在你的機器上的x軸上加1? – tkja

+0

@tkja我很難理解你想達到的目標。你爲什麼單獨繪製'y'而不是正確的'ax.plot(x,y)'。如果你只是想從'1'開始滴答,那麼上面修改後的答案應該是好的,不需要像以前那樣在該圖上放置一千個滴答。 – nye17

+1

簡單和工作。如果我有能力讓你高興,我會的。謝謝! – tkja