从字典值在Python中绘制直方图

3 投票
2 回答
4571 浏览
提问于 2025-04-18 06:11

我正在尝试绘制一个直方图。这个直方图的数据来自一个字典,这个字典里面有一个频率列表,我只需要绘制:

  • 一个直方图,或者,

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

下面是这个字典的一个例子:

{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}

非常感谢。

2 个回答

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)
5

你可以用 pandas 很快地做到这一点:

import pandas as pd

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

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

撰写回答