python - 在 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() 中的字典映射。我如何映射它以生成一个像下面这样的新饼图,其中的值像第二个图一样:
解决方案
推荐阅读
- bpf - 如何在接口之间共享 ebpf 映射
- python - 使用 GMAIL API 的 Django 应用程序,Oauth 令牌已删除错误
- ios - 使用 Alamofire 加载图像非常慢
- ssh - 将 ssh 密钥从 windows 机器复制到 windows server 2019
- javascript - 计算两个期间的百分比差异
- c# - Blazor WASM,自动更新数据更改
- deep-learning - 多类文本分类
- c - 在 C 中不能按预期工作的字符串回文函数
- python - 有人可以解释为什么我在我的 ATM python 程序中出现这个错误(TypeError: unsupported operand type(s) for -: 'float' and 'tuple')
- python - 如何更新画布大小的 tkinter 滚动条大小