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

Matplotlib子图双Y轴类共享右侧总Y轴标签的实现方法咨询

Matplotlib子图双Y轴类共享右侧总Y轴标签的实现方法咨询

当然可以实现!你已经成功给左侧的绿色Y轴系列加了总标签,要给右侧蓝色的双Y轴系列添加对应的总Y轴标签,有几种简洁的方式,下面给你具体的实现方案:

方法一:直接调整supylabel的位置

fig.supylabel其实支持通过x参数调整标签的水平位置,我们可以把它放在右侧对应的位置,同时设置颜色为蓝色,操作起来非常直接:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2, sharex=True)

# 初始化所有子图的双Y轴及颜色设置
axs[0,0].tick_params(axis='y', labelcolor='g')
t = axs[0,0].twinx()
t.tick_params(axis='y', labelcolor='b')

axs[0,1].tick_params(axis='y', labelcolor='g')
axs[0,1].twinx().tick_params(axis='y', labelcolor='b')

axs[1,0].tick_params(axis='y', labelcolor='g')
axs[1,0].twinx().tick_params(axis='y', labelcolor='b')

axs[1,1].tick_params(axis='y', labelcolor='g')
axs[1,1].twinx().tick_params(axis='y', labelcolor='b')

# 左侧绿色总标签
fig.supylabel('Green label', color='g')
# 右侧蓝色总标签,通过x参数调整到右侧对应位置
fig.supylabel('Blue label', color='b', x=1.02)

plt.tight_layout()
plt.show()

方法二:创建隐藏的右侧共享轴(更精准的对齐方式)

如果希望右侧总标签和所有子图的右侧Y轴对齐得更精准,尤其是当子图高度存在细微差异时,可以创建一个覆盖整个右侧区域的隐藏轴,再在这个轴上设置Y轴标签:

import matplotlib.pyplot as plt

fig, axs = plt.subplots(2, 2, sharex=True)

# 用循环简化子图初始化代码,更简洁
for ax_row in axs:
    for ax in ax_row:
        ax.tick_params(axis='y', labelcolor='g')
        twin_ax = ax.twinx()
        twin_ax.tick_params(axis='y', labelcolor='b')

# 左侧绿色总标签
fig.supylabel('Green label', color='g')

# 创建隐藏的右侧轴,仅用于放置总标签
right_super_ax = fig.add_subplot(111, frameon=False)
# 隐藏轴的所有刻度和线条,只保留标签
right_super_ax.tick_params(labelleft=False, labelright=False, left=False, right=False)
# 设置右侧总标签,调整旋转角度和垂直对齐方式以匹配左侧标签的视觉效果
right_super_ax.set_ylabel('Blue label', color='b', rotation=-90, va='bottom')

plt.tight_layout()
plt.show()

小提示

  • 方法一适合快速实现需求,调整x参数的数值可以微调标签的左右位置;
  • 方法二的标签位置会和右侧Y轴的对齐度更高,视觉统一性更好,推荐在对排版要求较高的场景使用。

备注:内容来源于stack exchange,提问作者corinna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:19:40