在 Python 中,我有一个二维数组,例如:
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[] 列表的值相对应,而不是底部的任意索引方案 - 例如,我希望 x 轴上的 date_info[2] 而不是数字 2。
现在在这个论坛的帮助下,我可以使用:
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()