gpt4 book ai didi

python - 在 python 中一起绘制 imshow 和线图

转载 作者:太空宇宙 更新时间:2023-11-04 01:32:53 25 4
gpt4 key购买 nike

好吧,我完全被一个 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 情节的图片,然后当我尝试在其上添加线图时:

plot with imshow only plot with imshow and line plot

在第二张图中,x 轴上 0 附近的细线是整个图片 1 被压缩在 0 到 60 之间。

如果您对此问题有任何帮助,我将不胜感激。谢谢。

最佳答案

您可以使用 extent kwarg 将您的 imshow 图放在正确的位置。作为一个额外的好处,如果您也这样做了,您应该能够让 matplotlib 自动处理轴刻度线。

import matplotlib.pyplot as plt
import numpy as np
x = np.random.rand(2,3)
plt.imshow(x, interpolation='nearest', extent=[0,3,0,2])

enter image description here

plt.imshow(x, interpolation='nearest', extent=[100,103,100,102])

enter image description here

关于python - 在 python 中一起绘制 imshow 和线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com