我想要3行子图,每行子图的宽度不同,但它们都共享相同的X轴,例如下面的粗略模型。如何做到这一点?即使在GridSpec调整的图中,我也可以使用sharex=True吗?
sharex=True
的数据
xcitsw881#
您可以手动放置轴,或者另一种方法是使用inset_axes:
import matplotlib.pyplot as plt import numpy as np fig, axs = plt.subplots(3, 1, constrained_layout=True, sharex=True, sharey=True) ylim=[-3, 3] axs[2].plot(np.random.randn(500)) axs[2].set_ylim(ylim) xlim = axs[2].get_xlim() ax0 = axs[0].inset_axes([300, ylim[0], xlim[1]-300, ylim[1]-ylim[0]], transform=axs[0].transData) ax0.set_ylim(ylim) ax0.set_xlim([300, xlim[1]]) axs[0].axis('off') ax0.plot(np.arange(300, 500), np.random.randn(200)) ax1 = axs[1].inset_axes([150, ylim[0], xlim[1] - 150, ylim[1]-ylim[0]], transform=axs[1].transData) ax1.set_ylim(ylim) ax1.set_xlim([150, xlim[1]]) axs[1].axis('off') ax1.plot(np.arange(150, 500), np.random.randn(350)) plt.show()
字符串
irtuqstp2#
您可以在创建子图时传递哪些轴用作共享轴的参考
fig = plt.figure() gs = matplotlib.gridspec.GridSpec(3,3, figure=fig) ax1 = fig.add_subplot(gs[0,2]) ax2 = fig.add_subplot(gs[1,1:], sharex=ax1) ax3 = fig.add_subplot(gs[2,:], sharex=ax1) ax1.plot([1,5,0])
2条答案
按热度按时间xcitsw881#
您可以手动放置轴,或者另一种方法是使用inset_axes:
字符串
的数据
irtuqstp2#
您可以在创建子图时传递哪些轴用作共享轴的参考
字符串
的数据