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

使用px.bar且设置facet_row时,如何仅修改第二个子图的y轴范围?

解决Plotly Express仅修改指定子图y轴范围的问题

要仅修改facet_row布局中第二个子图的y轴范围,你可以通过以下两种有效方法实现:

方法一:使用update_yaxes指定目标子图

当使用facet_row时,子图按行排列,row索引从1开始计数,第二个子图对应row=2,直接通过参数定位修改:

import plotly.express as px

df = px.data.tips()

fig = px.bar(df, x="sex", y="total_bill", facet_row="day", barmode="group")

# 仅修改第二行子图的y轴范围
fig.update_yaxes(range=[0, 10], row=2, col=1)

fig.show()

方法二:直接修改对应y轴的布局属性

Plotly为facet_row的每个子图y轴分配了yaxis、yaxis2、yaxis3...的ID,第二个子图对应yaxis2,直接更新其范围:

import plotly.express as px

df = px.data.tips()

fig = px.bar(df, x="sex", y="total_bill", facet_row="day", barmode="group")

# 直接更新第二个子图的y轴范围
fig.layout.yaxis2.update(range=[0, 10])

fig.show()

你之前方法失效的原因分析

  • 使用fig.update_yaxes(range=[0, 60], row=1, col=1)时,row=1定位的是第一个子图,而非第二个,若未正确指定row,设置会默认应用到所有子图。
  • 若fig.layout["yaxis2"].update(range=[0,10])无效,大概率是代码执行顺序问题(比如该语句写在全局update_yaxes之后,被覆盖),或拼写错误(比如误写为yaxis_2)。

内容的提问来源于stack exchange,提问作者Hamzah Al-Qadasi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:10:30