我有一个2比2的情节,我正在动态创建。在第一行中我想绘制密度函数,在第二行CDF中。我想要
也就是说,垂直对齐的两个对象具有相同的x轴,而水平对齐的两个图具有相同的y轴。
但是,sharex
和sharey
强制它们对所有子图都相同。如何修复这种轴共享?我知道我可以手动为每个轴分配一个共享伙伴,但这不适用于下面的通用结构:
fig, axes = plt.subplots(nrows=2, ncols=2, sharex=True)
for i, lam in enumerate(lams):
axesNow = [axs[i] for axs in axes] # pick the ith column from axes
for i, Param.p in enumerate(pp):
axesNow[0].plot(somethingWithPDF)
axesNow[1].plot(somethingWithCDF)
for ax in axes.flatten(): ax.legend()
答案 0 :(得分:40)
pyplot.subplots documentation描述了'col'
和'row'
kwargs的sharex
和sharey
选项。特别是,我想你想要:
fig, axes = plt.subplots(nrows=2, ncols=2, sharex='col', sharey='row')
答案 1 :(得分:-1)
这样的事情,所有轴都是单独构建的:
x1 = np.arange(5)
y1 = np.arange(3, 8)
ax1 = plt.subplot(223)
ax1.plot(x1, y1)
ax1.set_title("ax1")
x2 = np.arange(5, 10)
y2 = np.arange(3, 8)
ax2 = plt.subplot(224, sharey=ax1)
ax2.plot(x2, y2)
ax2.set_title("ax2")
#plt.setp(ax2.get_yticklabels(), visible=False) # Use this to hide axes labels
x3 = x1
y3 = np.arange(13, 8, -1)
ax3 = plt.subplot(221, sharex=ax1)
ax3.plot(x3, y3)
ax3.set_title("ax3")
#plt.setp(ax3.get_xticklabels(), visible=False)
x4 = x2
y4 = y3
ax4 = plt.subplot(222, sharex=ax2, sharey=ax3)
ax4.plot(x4, y4)
ax4.set_title("ax4")
#plt.setp(ax4.get_xticklabels(), visible=False)
#plt.setp(ax4.get_yticklabels(), visible=False)
plt.show()