这是我的代码,用来在一个子图和一个结果图中创建两个子图。我想让左图和右图共享它们的y轴。
fig = plt.figure()
fig.suptitle('L1000N1800 AGN HMFs')
outer = fig.add_gridspec(1,2)
axout = outer.subplots()
for i in range (2):
axout[i].set_xticklabels([])
axout[i].set_yticklabels([])
axout[i].axis('off')
inner = outer[0,0].subgridspec(2,1,hspace=0)
ax = inner.subplots(sharex=True)
ax[0].errorbar(hmf_DMO_FIDUCIAL[0],hmf_DMO_FIDUCIAL[1])
ax[0].errorbar(hmf_DMO_FIDUCIAL[0],hmf_DMO_FIDUCIAL[1])
ax[0].errorbar(hmf_DMO_FIDUCIAL[0],STRONGEST_SN_DMO)
ax[0].set_yscale("log")
ax[0].set_xscale("log")
ax[1].errorbar(hmf_DMO_FIDUCIAL[0],hmf_DMO_FIDUCIAL[1])
ax[1].set_yscale("log")
inner = outer[0,1].subgridspec(2,1,hspace=0)
ax = inner.subplots(sharex=True)
ax[0].errorbar(hmf_DMO_FIDUCIAL[0],hmf_DMO_FIDUCIAL[1])
ax[0].errorbar(hmf_DMO_FIDUCIAL[0],hmf_DMO_FIDUCIAL[1])
ax[0].set_yscale("log")
ax[0].set_xscale("log")
ax[1].errorbar(hmf_DMO_FIDUCIAL[0],hmf_DMO_FIDUCIAL[1])
ax[1].set_yscale("log")
fig.tight_layout()
fig.show()
我试过axout = outer.subplots(sharey=True)
,但这不起作用。
2条答案
按热度按时间yr9zkbsy1#
您可以使用
GridSpecFromSubplotSpec
和一些巧妙的“隐藏”轴刻度来实现这一点:可以用数据和打印样式替换
ax.plot(x, y)
。hmmo2u0o2#
这不会与您的代码相同,但显示如何,我已测试植入具有相同y轴:导入matplotlib.pyplot作为plt