首页 > 解决方案 > 在 Python 中使用 Pandas 绘制饼图

问题描述

我开始使用 Matplotlib 饼图,到目前为止看起来不错!我只有几个问题。

我对特定的列感兴趣,它们是分类的,但是数字和这些数字意味着我想在饼图上描绘的不同类型的东西。

这是我的工作代码。我从一个 Python 字典开始绘制数字

valuelables = {
    1:"Deutschland",
    2:"UK",
    3:"America"
}

s1 = df.request.value_counts(normalize=True)*100
size = s1.tolist()
keys = s1.keys().tolist()

为了让您在本地计算机上制作:

print(size) # size gives a list [99.22871437721278, 0.5294334011693548, 0.2418522216178678]
print(keys) # keys give [2, 1, 3]
patches, texts = plt.pie(size, shadow=True, startangle=90, autopct='%1.1f%%')
plt.legend(patches, valuelables[keys], loc="best")
plt.axis('equal')

不幸的是,我收到以下错误:TypeError: unhashable type: 'list'

这显然来自 plt.legend() 中的字典映射。我如何映射它以生成一个像下面这样的新饼图,其中的值像第二个图一样:

在此处输入图像描述

在此处输入图像描述

标签: pythonpandasmatplotlibpie-chart

解决方案


推荐阅读