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

如何控制Plotly柱状图中X轴列名的最大显示长度?

控制X轴国家名称长度的两种实用方法

要解决Plotly柱状图X轴国家名称过长导致显示拥挤的问题,直接修改数据或调整布局即可,以下是两种高效方案:

方案1:截断长名称(带省略号)

提前预处理数据集,把超过指定长度的国家名称截断并添加省略号,既保证简洁性又能提示用户名称被截断:

import plotly.express as px

df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")
# 设置最大长度为10,超出部分用省略号替代
df['country_short'] = df['country'].str.slice(0, 10) + df['country'].apply(lambda x: '...' if len(x) > 10 else '')
fig = px.bar(df, y='pop', x='country_short', text='pop')
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(uniformtext_minsize=8, uniformtext_mode='hide', xaxis_title='国家')
fig.show()

方案2:自动换行显示完整名称

如果不想丢失名称信息,可以让长名称自动换行,通过str.wrap()指定每行的字符数,配合调整X轴标签的垂直对齐方式:

import plotly.express as px

df = px.data.gapminder().query("continent == 'Europe' and year == 2007 and pop > 2.e6")
# 每8个字符自动换行
df['country_wrapped'] = df['country'].str.wrap(8)
fig = px.bar(df, y='pop', x='country_wrapped', text='pop')
fig.update_traces(texttemplate='%{text:.2s}', textposition='outside')
fig.update_layout(
    uniformtext_minsize=8, 
    uniformtext_mode='hide', 
    xaxis_title='国家',
    xaxis={'tickmode': 'array', 'tickvals': df['country_wrapped'], 'ticktext': df['country_wrapped']}
)
fig.show()

额外优化建议

  • 若选择换行方案,可同时设置xaxis_tickangle=-45让标签旋转,进一步节省水平空间;
  • 根据实际图表尺寸调整截断长度或换行字符数,确保显示效果协调。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 21:11:05