2012-07-25 54 views
0

我有代碼,這使得一個二維陣列的圖。沿x軸只是我的數組的索引,但我希望x軸顯示索引代表的值。顯示值的索引表示在x軸上

相關的代碼:

plt.imshow(data, aspect="auto") 
plt.colorbar() 
plt.show() 

其中 「數據」 是一個1000由200陣列。所以此刻,繪圖正確創建,x軸顯示數組的索引號(0-199)。

但這指數也對應於另一個列表,我有長度200的我想對應於索引的時間顯示於x軸的日期(日期[]),而不是索引本身。

我該如何解決這個問題?

回答

1

爲了把X-蜱和標籤可以使用

plt.xticks(range(200),date) 

但是上面會放太多蜱和標籤。如果你想減少蜱的數量,比如5,你可以使用

idx=np.linspace(0,199,5).astype('int') 
plt.xticks(idx,[date[i] for i in idx]) 
+0

完美的工作。非常感謝你的回覆! – user1551817 2012-07-25 16:59:23

+0

如果它解決了您的問題,請接受答案。 – imsc 2012-07-26 07:02:56

1

你寫了imshow()方法,或者是一個圖書館的一部分? 如果這是你的,只是添加一行發生之日起[X]值每個x。

如果該方法是一個庫的一部分,你也許可以欺騙別的東西,但我需要更多地瞭解它。

+0

我真的不明白它的意思爲「寫imshow()方法」,所以我想這意味着我沒有」寫它。但是,是的,你所說的就像我需要做的事情。我需要發佈剩餘的代碼嗎?因爲我是初學者,所以很雜亂。 – user1551817 2012-07-25 14:49:21

+0

對不起,我的意思是「沒有你創建imshow()方法,你自己或者你使用已經存在的一個是」。看起來imsc比我更瞭解這個,看看他的回答。 – metalcharms 2012-07-25 15:27:49