如何在Python3.4中使用DICT_VALUES生成饼图? [英] how to generate pie chart using dict_values in Python 3.4?

查看:0
本文介绍了如何在Python3.4中使用DICT_VALUES生成饼图?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要使用Counter库获得的列表中数字的频率。另外,我分别使用keys = Counter(list).keys()values = Counter(list).values()获得键和值,其中list是数字列表。它们的输出形式如下:

dict_keys(['0.2200', '0.2700', '0.6200', '0.3000', '0.2500', '0.3400', '0.5600', '0.3900', '0.5400', '0.5500', '0.7500', '0.4100', '0.2800', '0.4200', '0.3800', '0.6600', '0.2000', '0.5200', '0.7200'])
和, Dict_Values([15,3,6,13,6,3,1,3,3,5,4,14,8,5,3,5,11,3,9])

现在我想使用键和值生成一个饼图,我是通过以下方式完成的:

import matplotlib.pyplot as pyplot
pyplot.axis("equal")
pyplot.pie(float(values),labels=float(keys),autopct=None)
pyplot.show()

但是,我得到的错误是:

TypeError: float() argument must be a string or a number, not 'dict_values'

有没有办法将dict_values转换为字符串或数字,因为用于生成饼图的函数只接受字符串或数字?

推荐答案

您需要遍历这些值并将它们分别转换为浮点数:

pyplot.pie([float(v) for v in values], labels=[float(k) for k in keys],
           autopct=None)

[expression for target in iterable]称为列表理解并生成列表对象。

我不会创建两次Counter();只创建一次并重复使用:

counts = Counter(yourlist)
pyplot.pie([float(v) for v in counts.values()], labels=[float(k) for k in counts],
           autopct=None)

这篇关于如何在Python3.4中使用DICT_VALUES生成饼图?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆