python - Python Plotly:文本未出现在饼图的所有部分
问题描述
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()
输出:
问题是该text
参数仅显示在Male部分,即使 apd.Series
已通过。
更改为,例如,text = ['A', 'B']
为了测试目的会导致相同的问题:
的输出df['Gender'].value_counts()
是:
Male 831913
Female 144877
Name: Gender, dtype: int64
所以我非常希望 144877 的值会出现在图表中,因为这发生在 831913 上。我该如何解决这个问题?
解决方案
如果另一个答案不起作用,这是一种不同的方法。但由于某种原因,我无法让颜色设置正常工作。
#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()