将imshow情节与常规情节相结合

时间:2012-09-18 07:30:45

标签: python

在Python中,我有一个2D数组,例如:

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()

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您应该可以在ax2.set_xticks([])之前添加行plt.show()。您可能还想阅读kwarg hold