You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 02:42:03