好的,我完全被 Python 问题所困扰。我觉得把问题描述得太详细会让人困惑,所以我先总结一下问题,然后展示我的代码。
我创建了一个 imshow 图,在其顶部,我想绘制一个常规线图。Y 轴不同,这很好,但两者的 X 轴应该相同。
除了缩放之外,它几乎可以工作:
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.set_xlabel('MJD',fontsize=14)
ax1.set_ylabel('Bin Number',fontsize=14)
mjdaxis=np.linspace(0,bad_removed_mjd.shape[0]-1,20).astype('int')
ax1.set_xticks(mjdaxis,[int(np.floor(bad_removed_mjd[i])) for i in mjdaxis])
ax1.imshow(residuals, aspect="auto")
ax2 = ax1.twinx()
ax2.set_ylabel('Pdot (s-2)',fontsize=14)
ax2.plot(pdot[8:,0],pdot[8:,1])
plt.show()
现在发生的情况是 imshow 图在 x 轴上的值 0-60 之间被挤压。这是因为它们现在被它们的索引号 0,1,2...绘制。我需要它们的 x 轴值对应于列表“bad_mjd_removed”55304、55365、55401...中的值。这很好用当我自己有 imshow 情节时。
以下是 imshow 图的图片,然后当我尝试在其上添加线图时:
在第二个图上,x 轴上 0 附近的细线是整个图片 1 挤在 0 和 60 之间。
对于这个问题的任何帮助,我将不胜感激。谢谢你。