gpt4 book ai didi

python - 使用pyplot在python中的多个子图上绘制水平线

转载 作者:IT老高 更新时间:2023-10-28 20:51:50 30 4
gpt4 key购买 nike

我在同一页面上绘制三个子图。我想在所有子图中画一条水平线。以下是我的代码和结果图:(您可以注意到我可以在其中一个图上获得水平线,但不是全部)

gs1 = gridspec.GridSpec(8, 2)
gs1.update(left=0.12, right=.94, wspace=0.12)
ax1 = plt.subplot(gs1[0:2, :])
ax2 = plt.subplot(gs1[3:5, :], sharey=ax1)
ax3 = plt.subplot(gs1[6:8, :], sharey=ax1)

ax1.scatter(theta_cord, density, c = 'r', marker= '1')
ax2.scatter(phi_cord, density, c = 'r', marker= '1')
ax3.scatter(r_cord, density, c = 'r', marker= '1')
ax1.set_xlabel('Theta (radians)')
ax1.set_ylabel('Galaxy count')
ax2.set_xlabel('Phi (radians)')
ax2.set_ylabel('Galaxy count')
ax3.set_xlabel('Distance (Mpc)')
ax3.set_ylabel('Galaxy count')
plt.ylim((0,0.004))
loc = plticker.MultipleLocator(base=0.001)
ax1.yaxis.set_major_locator(loc)

plt.axhline(y=0.002, xmin=0, xmax=1, hold=None)

plt.show()

这会生成以下内容: enter image description here

再次,我希望我在最后一个子图中绘制的线也出现在前两个子图中。我该怎么做?

最佳答案

我找到了一种方法来为任何偶然发现此问题的人做这件事。

我们需要替换 OP 中的以下行:

plt.axhline(y=0.002, xmin=0, xmax=1, hold=None)

我们将其替换为:

ax1.axhline(y=0.002,xmin=0,xmax=3,c="blue",linewidth=0.5,zorder=0)
ax2.axhline(y=0.002,xmin=0,xmax=3,c="blue",linewidth=0.5,zorder=0)
ax3.axhline(y=0.002,xmin=0,xmax=3,c="blue",linewidth=0.5,zorder=0)

这会产生:

enter image description here

关于python - 使用pyplot在python中的多个子图上绘制水平线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129007/

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