Python,对dict进行排序以表示直方图
我在python中有一个Python,对dict进行排序以表示直方图,python,sorting,dictionary,Python,Sorting,Dictionary,我在python中有一个dict结构,如下所示 {'68': 1, '10': 2, '3': 1, '50': 1} 我想打印一个直方图,表示dict。问题是,我不知道如何对dict进行排序,从而生成直方图 我看到过许多关于如何按键或值按递增/递减顺序对dict进行排序的帖子,但没有以直方图格式进行排序;其中最大值的关键点位于中心,其他关键点分布在两侧,以创建一个漂亮的山形图形 目前,我可以以直方图类型的格式打印出dict,但同样,它没有被排序为类似直方图的结构 关于如何将我的dict排序为
dict
结构,如下所示
{'68': 1, '10': 2, '3': 1, '50': 1}
我想打印一个直方图,表示dict
。问题是,我不知道如何对dict进行排序,从而生成直方图
我看到过许多关于如何按键或值按递增/递减顺序对dict进行排序的帖子,但没有以直方图格式进行排序;其中最大值的关键点位于中心,其他关键点分布在两侧,以创建一个漂亮的山形图形
目前,我可以以直方图类型的格式打印出dict
,但同样,它没有被排序为类似直方图的结构
关于如何将我的
dict
排序为直方图,有什么想法吗?也许numpy
或collections
有我不知道的东西?将字典转换为(键、值)元组列表
按每个元组的第一项对列表进行排序
>>> from operator import itemgetter
>>> d.sort(key = itemgetter(0))
>>> print d
[(3, 1), (10, 2), (50, 1), (68, 1)]
>>>
我想到的算法是:取键,排序它们,构造一组长度键。大小,为每个键分配一个索引,从数组中间开始,前后移动。但是我肯定会先检查numpy。”[…]其他的分布在两边[…]“-你如何决定哪一边?你说最大值的键在中间,但如果键只是正整数,就无法确定哪些正整数属于左边,哪些属于右边。。。根据你的描述。仅仅因为一些直方图看起来像钟形曲线并不意味着它们都像钟形曲线。没有直方图排序顺序。它表示数量-键或值。?可以根据系列数据绘制直方图。它将计算序列中每个值的出现次数,并绘制频率图,这就是直方图。我使用了集合并做了一个
orderedDict
,结果非常相似。@Bumsketer:那么你真的得到了钟形曲线了吗?嗯,数据确实产生了钟形,我明白你的意思,所有数据不一定都应该这样。结果很好。我认为它应该看起来像一个钟形,因为搜索直方图时出现的所有图片都显示一个钟形曲线。
>>> from operator import itemgetter
>>> d.sort(key = itemgetter(0))
>>> print d
[(3, 1), (10, 2), (50, 1), (68, 1)]
>>>