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

Plotly子图Y轴标签位置调整:如何将标签置于子图之间?

Plotly子图Y轴标签置于两图中间的实现方法

核心思路是隐藏两个子图的原生Y轴标签,通过自定义注释(annotation)将标签放置在两图的垂直中间位置,这是Plotly中实现该需求最灵活的方案。

具体代码实现

import plotly.graph_objects as go
from plotly.subplots import make_subplots

# 创建垂直堆叠的子图(根据需求调整rows/cols)
fig = make_subplots(rows=2, cols=1, shared_xaxes=True)

# 向子图添加示例数据
fig.add_trace(go.Scatter(x=[1,2,3], y=[4,5,6]), row=1, col=1)
fig.add_trace(go.Scatter(x=[1,2,3], y=[7,8,9]), row=2, col=1)

# 隐藏两个子图的原生Y轴标签
fig.update_yaxes(title_text="", row=1, col=1)
fig.update_yaxes(title_text="", row=2, col=1)

# 添加自定义Y轴标签到两图中间位置
fig.add_annotation(
    text="自定义Y轴标签",  # 替换为你的标签文本
    xref="paper",
    yref="paper",
    x=-0.1,  # 左右位置微调,负数表示在画布左侧
    y=0.5,  # 垂直居中,刚好处于两子图中间
    showarrow=False,
    font=dict(size=14),
    textangle=-90  # 旋转文字,匹配Y轴标签方向
)

# 调整左侧边距,避免标签被截断
fig.update_layout(margin=dict(l=80))

fig.show()

关键调整要点

  • 若子图为水平排列,只需将y=0.5改为x=0.5,textangle=-90改为textangle=0即可
  • x=-0.1的数值可根据标签长度灵活调整,确保标签完全显示在画布内
  • 若需要更精准的轴对齐,可将xref和yref改为对应子图的轴ID(如"y1"),但paper参考系更适配通用布局场景

内容的提问来源于stack exchange,提问作者ShayKat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:45:48