如何使用matplotlib绘制collections.Counter直方图?

Leo*_*ldo 1 python collections matplotlib

如何绘制以下Counter对象的直方图?

w = collections.Counter()
l = ['a', 'b', 'b', 'b', 'c']
for o in l:
    w[o]+=1
Run Code Online (Sandbox Code Playgroud)

She*_*ore 6

查看您的数据并进行尝试,我想您想要的是条形图而不是直方图。直方图用于绘制分布,但这不是您所拥有的。您可以简单地使用keysvalues作为的参数plt.bar。这样,这些键将自动作为x轴刻度标签。

import collections
import matplotlib.pyplot as plt
l = ['a', 'b', 'b', 'b', 'c']
w = collections.Counter(l)
plt.bar(w.keys(), w.values())
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 5

我猜这就是你想要做的?你只需要添加 xtick 标签(见 matplotlib 文档)

import matplotlib.pyplot as plt
import collections

l = ['a', 'b', 'b', 'b', 'c']

count = collections.Counter(l)
print(count)

plt.bar(range(len(count)), count.values())
plt.show()
Run Code Online (Sandbox Code Playgroud)