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

如何调整Plotly Python图表中的柱状图列宽?

Plotly Python 柱状图宽度异常问题处理

问题现象

  • 未设置width=1时,柱状图柱子过宽,视觉呈现不合理
  • 设置width=1后,图表直接无法渲染

问题代码

fig_month = go.Figure(data=go.Bar(x=biom_enrollments_by_month['Месяц'], 
                                  y=biom_enrollments_by_month['Дата'], 
                                  width=1))

fig_month.update_layout(
    xaxis=dict(
        rangeselector=dict(
            buttons=list([
                dict(count=1,
                     label="1m",
                     step="month",
                     stepmode="backward"),
                dict(count=1,
                     label="MTD",
                     step="month",
                     stepmode="todate"),
                dict(count=10,
                     label="10d",
                     step="day",
                     stepmode="backward"),
                dict(step="all")
            ])
        ),
        rangeslider=dict(
            visible=True
        ),
        type="date"
    )
)

原因分析与解决方法

  1. width参数单位误解
    Plotly中Bar组件的width参数,当x轴为日期类型时,单位是毫秒。设置width=1等于把柱子宽度设为1毫秒,这会让柱子细到几乎不可见,甚至触发渲染异常。

  2. 根据数据间隔设置合理宽度
    根据你的日期数据粒度调整宽度值:

  • 若按天统计,可设置width=86400000(对应1天的毫秒数),也可根据视觉需求设为该值的一部分,比如width=43200000(半天)
  • 修改后示例代码:
fig_month = go.Figure(data=go.Bar(x=biom_enrollments_by_month['Месяц'], 
                                  y=biom_enrollments_by_month['Дата'], 
                                  width=43200000))  # 设为半天的毫秒数
  1. 检查数据逻辑合理性
    代码中y轴使用了Дата(日期)字段,这不符合柱状图的常规逻辑——y轴通常应为数值型统计数据(比如注册量)。如果Дата是日期类型,会导致图表逻辑混乱,这也可能是设置width后渲染失败的诱因之一,建议确认y轴数据应为统计数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 23:23:27