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

Plotly子图共享类别标签左对齐实现方案咨询

解决Plotly子图中水平箱线图Y轴类别标签左对齐的问题

针对你在共享Y轴的1行2列水平箱线图子图中,无法通过常规右侧Y轴hack实现Y轴类别标签左对齐的问题,可通过手动配置Y轴刻度属性的方式解决,以下是修改后的完整代码及关键说明:

修改后的代码

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

fig = make_subplots(rows=1, cols=2, shared_yaxes=True)

# 第一个子图的箱线图,显式指定y值固定刻度位置
fig.add_box(x=[1,3,5,7], y=0, row=1, col=1, name='short')
fig.add_box(x=[3,5,7,9], y=1, row=1, col=1, name='longer')
fig.add_box(x=[1,4,6,8], y=2, row=1, col=1, name='even longer')

# 第二个子图的箱线图,与第一个子图使用相同y值保持对齐
fig.add_box(x=[1,3,5,7], y=0, row=1, col=2, name='short')
fig.add_box(x=[3,5,7,9], y=1, row=1, col=2, name='longer')
fig.add_box(x=[1,4,6,8], y=2, row=1, col=2, name='even longer')

# 核心配置:实现Y轴标签左对齐
fig.update_layout(
    showlegend=False,
    yaxis=dict(
        tickmode='array',
        tickvals=[0, 1, 2],
        ticktext=['short', 'longer', 'even longer'],
        tickangle=0,  # 保持标签水平显示
        tickfont=dict(align='left'),  # 设置标签左对齐
        side='left',
        position=0.01,  # 调整轴位置让标签贴近左侧边缘
        automargin=True  # 自动调整边距防止标签被截断
    )
)

fig.update_traces(marker_color='blue', orientation='h')

fig.show()

关键实现说明

  • 固定Y轴刻度位置:显式给每个箱线图指定y值,确保Y轴刻度位置固定,为自定义标签提供准确对应关系
  • 手动配置刻度标签:通过tickmode='array'指定自定义刻度值与文本,替代Plotly默认生成的居中标签
  • 标签对齐设置:通过tickfont.align='left'直接设置标签左对齐,配合tickangle=0保持水平显示
  • 轴位置调整:调整position参数让Y轴贴近图表左侧,确保标签完全左对齐;automargin=True避免标签被图表边缘截断

这种方法无需依赖右侧Y轴的hack,完全适配共享Y轴的子图场景,能稳定实现Y轴类别标签左对齐的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:02:08