2012-09-18 76 views
0

在Python中,我有一個二維數組,如:結合imshow情節與普通情節

1.3 5.7 3.2 5.6 2.3 9.5 1.1 4.1 5.2

然後我用 'imshow' 得到我所需要的 - 我基本上有一個情節,其中x軸是: (列)0(列)1(列)2 ....

和y軸是: 。 。 (行)2 (行)1 (行)0

,然後將實際值(5.6或2.3或任何)通過顏色,這正是我想表示。

但後來,而不是x軸只是第0列第1列和第2列等,我希望x軸顯示與列0列1和列2等相對應的日期。此信息是存儲在不同的列表中,比如說「date_info []」。

因此,我想讓imshow的x值與date_info []列表的值相對應,而不是數字2,例如我希望date_info [2]開啓x軸。

現在有了這個論壇的幫助,我是能夠做到這一點使用:

plt.xticks(mjdaxis,[int(np.floor(data_info[i])) for i in mjdaxis]) 

這是足夠了一段時間,但我只是改變了x軸的標籤,在這裏吧?而不是正在繪製的內容。現在,當我試圖在我的原始頂部放置另一個繪圖(只是一條規則曲線)時,x軸縮放會變得混亂,並且我的列再次聚集爲(1,2,3 ...),而是的相應date_info值(55500,55530,55574 ...)

如果任何人都能理解我所說的話,那就太好了!

僅供參考,這裏是我現在想要的代碼:

fig = plt.figure() 
ax1 = fig.add_subplot(111) 
mjdaxis=np.linspace(0,date_info[0]-1,20).astype('int') 
ax1.set_xticks(mjdaxis,[int(np.floor(date_info[i])) for i in mjdaxis]) 
ax1.imshow(residuals, aspect="auto") 

ax2 = ax1.twinx() 
ax2.plot(pdot[8:,0],pdot[8:,1]) 

plt.show() 

回答

0

如果我理解正確的話,你應該能夠你plt.show()之前剛剛添加行ax2.set_xticks([])。您可能還想閱讀kwarg hold

+0

不幸的是,這似乎給了我同樣的結果。儘管如此,我會檢查出「持有」。謝謝。 – user1551817