65

Counter()文字列のセットの出現回数をカウントするために使用できる別の質問を見ました。だから私が持っているなら私は['A','B','A','C','A','A']得るCounter({'A':3,'B':1,'C':1})。しかし今、その情報を使用して、たとえばヒストグラムを作成するにはどうすればよいでしょうか?

4

3 に答える 3

81

データについては、ヒストグラムの代わりに棒グラフを使用することをお勧めします。このコードをチェックしてください:

from collections import Counter
import numpy as np
import matplotlib.pyplot as plt


labels, values = zip(*Counter(['A','B','A','C','A','A']).items())

indexes = np.arange(len(labels))
width = 1

plt.bar(indexes, values, width)
plt.xticks(indexes + width * 0.5, labels)
plt.show()

結果: ここに画像の説明を入力

于 2013-10-05T14:45:46.427 に答える
16

pandasを使用して、これを行うための非常に簡潔なコードを書くことができます。

    import numpy as np

    from pandas import Series
    
    sample = np.random.choice(['a', 'b'], size=10)
    
    s = Series(sample)
    
    In [29]: s
    Out[29]:
    0    a
    1    b
    2    b
    3    b
    4    a
    5    b
    6    b
    7    b
    8    b
    9    a
    dtype: object
    
    vc = s.value_counts()
    
    In [31]: vc
    Out[31]:
    b    7
    a    3
    dtype: int64
    
    vc = vc.sort_index()
    
    In [33]: vc
    Out[33]:
    a    3
    b    7
    dtype: int64
    
    c.plot(kind='bar')

その結果:

ここに画像の説明を入力

于 2013-10-05T14:54:16.113 に答える