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

如何在Plotly分面图中仅保留一个Y轴标签?

问题:Plotly分面图仅保留单个Y轴标签

从Plotly官方文档获取的示例代码生成的分面图中,每个子图都显示Y轴标签“lifeExp”,如何设置才能仅保留一个该标签?

原示例代码:

import plotly.express as px

df = px.data.gapminder().query("continent == 'Africa'")

fig = px.line(df, x="year", y="lifeExp", facet_col="country", facet_col_wrap=7,
              facet_row_spacing=0.04, # 默认值在使用facet_col_wrap时为0.07
              facet_col_spacing=0.04, # 默认值为0.03
              height=600, width=800,
              title="Life Expectancy in Africa")
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
fig.update_yaxes(showticklabels=True)
fig.show()

解决方案

可以通过先统一隐藏所有子图的Y轴标签,再单独为第一个子图设置Y轴标签的方式实现,修改后的代码如下:

import plotly.express as px

df = px.data.gapminder().query("continent == 'Africa'")

fig = px.line(df, x="year", y="lifeExp", facet_col="country", facet_col_wrap=7,
              facet_row_spacing=0.04,
              facet_col_spacing=0.04,
              height=600, width=800,
              title="非洲各国预期寿命变化")
fig.for_each_annotation(lambda a: a.update(text=a.text.split("=")[-1]))
# 隐藏所有子图的Y轴标签,保留刻度
fig.update_yaxes(title_text='', showticklabels=True)
# 单独设置第一个子图的Y轴标签
fig.layout.yaxis.title.text = 'lifeExp'
fig.show()

说明

  • update_yaxes(title_text=''):批量清除所有子图的Y轴标签
  • fig.layout.yaxis.title.text = 'lifeExp':仅给第一个子图的Y轴添加标签
  • 保留showticklabels=True可以让所有子图显示Y轴刻度,若不需要可改为False

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:25:36