我试图做一些非常简单的事情,但我是一个新手Python用户,所以这对我来说有点困难。我试图使饼图和标签的图表出现错误的切片馅饼。
下面是我的代码:
import matplotlib.pyplot as plt
# Data to plot
labels = data['Category'].unique()
sizes = (data['Category'].value_counts()/data['Category'].value_counts().sum())*100
# Plot
plt.pie(sizes, labels=labels,
autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')
plt.legend(labels, loc="best")
plt.tight_layout()
plt.show()
此代码生成一个饼图,但图例中的标签与图表上的标签不匹配。我已经确定这是由于“Category”的值在数据中出现的顺序与我定义“sizes”的行中的值的顺序不同。
有谁知道如何同步大小和标签,以便在饼图上显示适当的标签?
任何帮助将不胜感激!谢谢大家!
1条答案
按热度按时间ie3xauqp1#
您可以使用
labels = sizes.index
,这样两者的顺序相同。如果你想对标签进行排序,你可以先调用sizes = sizes.sort_index()
。或者,让它们按值排序:sizes = sizes.sort_values()
。默认情况下,它们将按出现的顺序排序。