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

Plotly Express绘制出生数分组柱状图报ValueError如何解决

问题原因

你构造的pivot_dayofweek为宽格式DataFrame,pivot_dayofweek.values是形状为(7,3)的二维数组,而Plotly Express的px.bar的y参数如果直接传入数组,默认期望接收一维数组,传入二维数组后Plotly无法匹配x轴7个坐标对应的y值映射规则,因此抛出元素数量不匹配的错误。

解决方法

提供两种可行方案,均可实现目标分组柱状图效果:

方案1:直接基于现有宽表绘图

无需修改已生成的透视表,仅调整绘图代码的y参数,传入列名列表即可:

px.bar(pivot_dayofweek,
       x=pivot_dayofweek.index,
       y=pivot_dayofweek.columns,
       barmode='group',
       labels={'value':'平均出生人数', 'variable':'年代', 'x':'星期'})

Plotly会自动将每个年代列作为独立分组,用不同颜色区分渲染。

方案2:转换为长表后绘图(更符合Plotly Express的设计习惯)

先将宽格式透视表转换为长格式,再指定分组字段绘图:

# 重置索引并转换为长表
pivot_long = pivot_dayofweek.reset_index().melt(
    id_vars='dayofweek',
    var_name='decade',
    value_name='avg_births'
)
# 绘制分组柱状图
px.bar(pivot_long,
       x='dayofweek',
       y='avg_births',
       color='decade',
       barmode='group')

内容的提问来源于stack exchange,提问作者Muhammad hassaan haider

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:36:04