Plotly go.Pie饼图未展示全部分类值、缺失数据问题咨询
问题成因
go.Pie调用的参数不匹配是分类丢失的核心原因:
df['docCategory'].value_counts()返回长度为3的Series,索引为3种分类值、值为对应分类的统计计数- 你给
go.Pie的labels参数传入了完整的df['docCategory']列(长度等于数据集总行数),values参数传入的是长度为3的计数结果,两者长度完全不匹配,Plotly对齐标签和数值时丢失了无法匹配的Unknown分类。
px.treemap可以正常展示的原因是它直接接收原始DataFrame,内部自动完成分类统计逻辑,不需要手动计算计数,因此能识别所有3种分类。
另外还有一个可能的叠加影响因素:你设置了uniformtext_mode='hide',如果Unknown分类的占比极小,内部文本无法满足14号字的显示要求也会被隐藏,若只是分类文本看不到、色块还存在,可以调整字号参数。
补充提示:如果你的
Unknown分类是空值/NaN,需要在调用value_counts时传入dropna=False参数,否则计数时会默认过滤空值,也会导致分类丢失。
修正代码
把饼图的labels改为取value_counts返回结果的索引即可:
# docCategory 占比饼图 valuesDocCat = df['docCategory'].value_counts() # 修正labels参数,取计数结果的索引(分类值),和values长度完全匹配 figDocCat = go.Figure(data=[go.Pie(labels = valuesDocCat.index, values = valuesDocCat.values)]) figDocCat.update_traces(textposition = 'inside') # 若要避免小分类文本被隐藏,可降低uniformtext_minsize或修改uniformtext_mode为'show' figDocCat.update_layout(uniformtext_minsize=14, uniformtext_mode='hide', title='Document Category breakdown')
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

