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

Plotly绘制饼图异常:无论数值如何均返回等分饼图求助

问题原因

你直接把数值列表sizes传给px.pie的第一个参数,但plotly.express.pie的第一个参数要求是DataFrame对象,而非单纯的数值列表。当你传入列表时,Plotly会把它当成包含三个元素的数据集,每个元素对应一个类别,但没有指定数值字段,默认每个类别的权重都是1,最终生成等分饼图。

解决方法

有两种可行的修复方式:

方法1:显式指定values参数

直接在px.pie中传入values=sizes,无需传第一个data_frame参数:

import plotly.express as px

sizes = [923, 168, 40]
labels = ['Monthly', 'Yearly', 'Weekly']

fig = px.pie(values=sizes, names=labels, color_discrete_sequence=px.colors.sequential.RdBu)
fig.show()

方法2:将数据整理为DataFrame(推荐)

更贴合Plotly Express的使用逻辑,把标签和数值封装到DataFrame中:

import plotly.express as px
import pandas as pd

data = {
    'CompFreq': ['Monthly', 'Yearly', 'Weekly'],
    'Counts': [923, 168, 40]
}
df = pd.DataFrame(data)

fig = px.pie(df, values='Counts', names='CompFreq', color_discrete_sequence=px.colors.sequential.RdBu)
fig.show()

两种方法都能让饼图正确对应[923, 168, 40]的数值占比。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 12:40:35