首页 > 解决方案 > Python Plotly:文本未出现在饼图的所有部分

问题描述

我有以下代码用于使用Plotly Python绘制饼图:

fig = px.pie(df, names = 'Gender', color = 'Gender', color_discrete_map = {'Male': 'lightblue', 'Female': 'lightpink'})

fig.update_traces(text = df['Gender'].value_counts(), textinfo = 'label+percent+text')

fig.update_layout(title_text = "Gender distribution", title_x = 0.5)

fig.show()

输出:

性别分布 A Plotly 错误

问题是该text参数仅显示在Male部分,即使 apd.Series已通过。

更改为,例如,text = ['A', 'B']为了测试目的会导致相同的问题:

性别分布 B Plotly bug

的输出df['Gender'].value_counts()是:

Male      831913
Female    144877
Name: Gender, dtype: int64

所以我非常希望 144877 的值会出现在图表中,因为这发生在 831913 上。我该如何解决这个问题?

标签: pythonpandasplotlyplotly-python

解决方案


如果另一个答案不起作用,这是一种不同的方法。但由于某种原因,我无法让颜色设置正常工作。

#simulating data

import plotly.express as px
import pandas as pd
rows = []
for i in range(85*5):
     rows.append(['Male'])
for i in range(15*5):
    rows.append(['Female'])

df = pd.DataFrame(rows, columns=["Gender"])


#plotting

fig = px.pie(pd.DataFrame(df['Gender'].value_counts()), 
                            values='Gender', 
                            names=['Male','Female'],
                            title='Gender Count',
                            color='Gender',
                            color_discrete_map={'Male':'lightcyan', 'Female':'cyan'}
                            )
fig.update_traces(textinfo='label+percent+value')
fig.show()

在此处输入图像描述


推荐阅读