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

Plotly Express柱状图Y轴刻度添加单位问题求助

解决Plotly Express柱状图Y轴刻度添加“xx.xh”单位的问题

方法一:利用ticksuffix+tickformat直接设置(推荐)

直接通过update_yaxes()针对Y轴配置,结合ticksuffix添加单位后缀,tickformat控制小数位数,无需手动生成刻度:

import plotly.express as px

# 自定义字典数据示例
game_data = {
    "game_name": ["原神", "星穹铁道", "CS2"],
    "total_hours": [24.6, 18.2, 32.9]
}

# 绘制柱状图
fig = px.bar(game_data, x="game_name", y="total_hours", title="游戏总时长统计")

# 配置Y轴刻度格式
fig.update_yaxes(
    tickformat=".1f",  # 保留1位小数,可按需调整为".0f"(整数)或".2f"(两位小数)
    ticksuffix="h"     # 添加小时单位后缀
)

fig.show()

方法二:自定义刻度值与文本(适用于精准控制刻度场景)

如果方法一不生效,可手动指定刻度值和对应显示文本,完全自定义格式:

import plotly.express as px

game_data = {
    "game_name": ["原神", "星穹铁道", "CS2"],
    "total_hours": [24.6, 18.2, 32.9]
}

fig = px.bar(game_data, x="game_name", y="total_hours", title="游戏总时长统计")

# 自定义刻度值(根据数据范围调整)
tick_values = [0, 10, 20, 30, 40]
# 生成对应刻度文本,格式为"xx.xh"
tick_texts = [f"{val}.0h" if val % 1 == 0 else f"{val}h" for val in tick_values]

# 应用自定义刻度
fig.update_yaxes(
    tickmode="array",
    tickvals=tick_values,
    ticktext=tick_texts
)

fig.show()

为什么之前的方法没生效?

  • text_auto()是控制柱子上显示的文本,而非坐标轴刻度,对轴格式无影响;
  • 若之前用fig.update_layout(yaxis={"tickformat": ".1fh"}),这种写法错误——Plotly的tickformat仅负责数值格式,单位后缀需用ticksuffix单独设置,二者组合才会生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:20:13