web-dev-qa-db-ja.com

matplotlibを使用してcollections.Counterヒストグラムをプロットする方法は?

次のCounterオブジェクトのヒストグラムをプロットする方法?:

w = collections.Counter()
l = ['a', 'b', 'b', 'b', 'c']
for o in l:
    w[o]+=1
7
Leopoldo

あなたのデータと試みを見て、ヒストグラムの代わりに棒グラフが欲しいと思います。ヒストグラムは分布をプロットするために使用されますが、それはあなたが持っているものではありません。 keysvaluesplt.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())

enter image description here

3
Bazingaa

これがあなたがしたいことだと思いますか? 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()
1
SV-97