用Python从字典值绘制直方图

3

我正在尝试绘制直方图。此直方图的数据来自包含频率列表的字典,我只需要绘制:

  • 一个直方图或者

  • 每个元素值的条形图(可以从这里得到直方图:)

以下是字典的示例:

{0: 282, 1: 152, 2: 131, 3: 122, 4: 108, 5: 101, 6: 106, 7: 91, 8: 96, 9: 92,
...
1147: 1, 1157: 1, 1186: 1, 1217: 1, 1236: 1, 1251: 1, 1255: 1, 1291: 1, 1372: 1, 1402: 1}

非常感谢。

你可以使用Python库mathplotlib(http://matplotlib.org/)或将所有内容写入文件,然后使用gnuplot或R来绘制。 - quant
1
柱状图演示 - http://matplotlib.org/examples/api/barchart_demo.html - Tom Ron
可能是从字典绘制直方图的重复问题。 - Franck Dernoncourt
2个回答

5
您可以使用 pandas 快速完成此操作:
import pandas as pd

df = pd.DataFrame([your_dict])
df = df.T
df.hist()

注意,your_dict应该在一个列表中。

0

另一种不使用 pandas 的方法:

h = [v for v in your_dict.values()]
plt.hist(h)

这使得过滤和修改变得更加容易,例如:

h = [np.log(v) for v in your_dict.values() if v>0]
plt.hist(v)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接