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

Python用Plotly go模块绘饼图报错:Pie对象无效属性'x'

解决Plotly go.Pie的ValueError问题并转换柱状图为饼图

错误原因

你遇到的ValueError: Invalid property specified for object of type plotly.graph_objs.Pie: 'x'是因为Plotly的go.Pie对象不支持x参数:

  • 柱状图go.Bar用x/y定义分类轴和数值轴;
  • 饼图go.Pie需要用labels(分类名称)和values(对应分类的数值)来配置数据。

修改后的完整代码

df2 = df.groupby(pd.to_datetime(df.MeterReading_DateTime).dt.hour).agg({'ACT_IMP_TOT': 'sum'}).reset_index()
# 可选优化:将小时数转为更直观的标签格式(如"0:00"、"1:00")
df2['MeterReading_DateTime'] = df2['MeterReading_DateTime'].apply(lambda h: f"{h}:00")

print(df2)
# 替换go.Bar为go.Pie,使用labels和values参数
data_plots = go.Pie(
    labels=df2['MeterReading_DateTime'], 
    values=df2['ACT_IMP_TOT'], 
    marker={'color': '#0f4054'}
)
# 调整布局:移除饼图不需要的x/y轴配置,保留背景色和自定义标题
layout = {
    'title': '各时段总用电量占比',
    'plot_bgcolor': '#E8E8E8'
}
# 注意:fig.data需要是列表格式(Plotly规范要求)
fig = {'data': [data_plots], 'layout': layout}
plot_div = offline.plot(fig, output_type='div')
return plot_div

关键改动说明

  • 核心修复:用go.Pie(labels=..., values=...)替代go.Bar(x=..., y=...),完全适配饼图的数据配置规则;
  • 布局优化:删除饼图不需要的xaxis/yaxis配置,避免冗余;
  • 规范格式:将data_plots放入列表中,符合Plotly对fig.data的数组格式要求(之前的柱状图代码也建议改成此格式,提升兼容性);
  • 可选优化:把小时数转换为h:00格式,让饼图的分类标签更易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:50:11