Matplotlib如何实现水平堆叠共享y轴的无间隙相邻子图
解决方案
修改后的完整代码如下:
import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi, 400) y = np.sin(x ** 2) # 新增sharey=True实现y轴共享 fig, (ax1, ax2) = plt.subplots(1, 2, sharey=True) fig.suptitle('Horizontally stacked subplots') ax1.plot(x, y) ax2.plot(x, -y) # 设置水平子图间距为0,实现紧密贴合 fig.subplots_adjust(wspace=0) # 可选优化:隐藏右侧子图重复的y轴刻度标签 ax2.yaxis.set_tick_params(labelleft=False) plt.show()
改动说明
- 共享y轴:在
plt.subplots()方法中添加sharey=True参数,两个子图会自动复用同一套y轴刻度范围,无需手动对齐刻度。 - 消除子图间隔:调用
fig.subplots_adjust(wspace=0),wspace参数控制同排子图的水平预留间距,设为0即可实现子图完全贴合无空白。 - 可选优化:如果需要彻底隐藏右侧子图的y轴刻度线,可额外添加
ax2.yaxis.set_tick_params(left=False)。
内容的提问来源于stack exchange,提问作者Dario
相关产品推荐
相关产品推荐

