如何以在x轴上共享相同比例的方式堆叠图

时间:2018-10-06 07:39:10

标签: matplotlib

以下代码用于生成3个子图。并且在所有3个子图中都提到了规模。我想以这样的方式堆叠它们,即x轴和y轴比例会一次出现。我可以使用plt.subplot()来获取此图,还是必须使用fig.add_axes来获得图?我实际上想对子图进行此操作,因为在fig.add_subplot中,我必须指定不需要的每个图的宽度和高度。

enter image description here

`fig,axes = plt.figure(nrow=3, ncolmn=1)
ax1 = fig.add_subplot(311)
ax2 = fig.add_subplot(312)
ax3 = fig.add_subplot(313)
ind1 =[1,2,3]
ind2 = [4,5,6]
for i in range(len(3)):
    data1=np.load(..)
    data2=np.load(..)
    axes[i].plot(data1, data2)`

1 个答案:

答案 0 :(得分:0)

这是使用subplots_adjust的一种解决方案,其中您使用hspace将两个图之间的间隔设为0。另外,使用sharex=True共享x轴

fig, axes = plt.subplots(nrows=3, ncols=1,sharex=True)
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

for i, ax in enumerate(axes.ravel()): # or axes.flatten() or axes.flat
    ax.plot(x, y, label='File %d' %i)
    ax.legend()
fig.text(0.5, 0.01, 'X-label', ha='center')
fig.text(0.01, 0.5, 'Y-label', va='center', rotation='vertical')  
plt.tight_layout() # To get a better spacing between the subplots
plt.subplots_adjust(hspace=.0)

enter image description here