字典中的Python直方图

2024-04-24 19:20:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本字典是这样写的:

dict = {1092267: '0.187', 524292: '-0.350', 524293: '0.029', 524294: '0.216'}

所以有一个id,然后是一个字符串中的值(真正的字典包含10000个这样的id)。我想用x轴上的绝对值做一个直方图,从0-0.1,0.1-0.2,0.2-0.3等等一直到0.9-1.0。y轴应计算0-0.1等范围内数值出现的数量。 我该怎么做???在


Tags: 字符串id数量字典直方图dict数值
2条回答

您可以使用numpy.histogram来创建直方图的存储单元。 首先,获取所有字典值的绝对值(因为id是不相关的)。在

dict_values = [abs(float(i)) for i in dict.values()]

然后,使用numpy.histogram显式指定值的范围。在

^{pr2}$

不使用数字直方图,您可以尝试:

test = {1092267: '0.187', 524292: '-0.350', 524293: '0.029', 524294: '0.216'}

intervals = [(-2, 0.1), (0.1, 0.2), (0.2, 0.3), (0.3, 0.4)]
count = []

for inf, sup in intervals:
    count.append(len([x for x in test.values() if inf < float(x) < sup]))

然后,count,即直方图,将有[2,1,1,0]。这样您就可以指定任意范围来定义存储箱。如果要打印它,可以使用matplotlib(example here)。在

1:http://matplotlib.org/1.3.0/examples/pylab_examples/histogram_demo_extended.html

相关问题 更多 >