python - 如何使饼图标签与数据框中的正确值保持一致?

标签 python pandas dataframe matplotlib data-analysis

我的饼图显示正常,各部分的大小正确,但标签未位于正确的位置。

# declaring exploding pie
explode = [0, 0.1, 0, 0, 0,0]
# define Seaborn color palette to use
palette_color = sns.color_palette('pastel')
  
# plotting data on chart
fig=plt.pie(combined_df.groupby(['Continent'])['total_consumption'].sum(), colors=palette_color,labels=combined_df['Continent'].unique(),
        explode=explode, autopct='%.0f%%', labeldistance=0.9,)
plt.show

this is the result

应绘制的值

Continent
Africa           227.0
Asia             128.7
Europe           431.9
North America    147.5
Oceania           42.5
South America     83.2

最佳答案

我怀疑是unique()value_counts()返回结果的顺序不一致。

value_counts() 返回的是按计数排序,unique() 是按数组中的出现排序。

你可以试试这个:

value_cnts = combined_df['Continent'].value_counts()
fig = plt.pie(value_cnts, colors=palette_color, labels=value_cnts.index, 
    explode=explode, autopct='%.0f%%', labeldistance=0.9)

关于python - 如何使饼图标签与数据框中的正确值保持一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75054232/

相关文章:

python - 创建线程本地的成员变量

python - Pandas 旋转数据框和多列 bool 比较

python - 如何在同一张图中绘制多个线性回归

python - Pandas :我如何迭代两个格式完全相同的数据帧?

r - 与列表名称相同的字符向量

python - 如果值匹配,则自动比较 2 个 csv 文件的值,将第二个 csv 读入 DataFrame

R,每次在另一列中满足条件时,从数值列中的相应值和后续值中减去一个值

python - 为什么某些代码在 Python2 中是确定性的,而在 Python 3 中是非确定性的?

Python Tkinter - 名称未定义

python - 在 Keras 中向后传播?