9

わかりましたので、データには '32'、'22'、'12'、'31'、'21'、'11' の 6 つの可能な値があります。これらを文字列として保存しています。Python でデータを並べ替えて、6 つのビンを作成し、それぞれのビンの数を表示することは可能ですか? または、ヒストグラムへの入力は数値でなければなりませんか?

4

4 に答える 4

15
data =  ['32', '22', '12', '32', '22', '12', '31', '21', '11']
dict((x, data.count(x)) for x in data)

結果

{'11': 1, '12': 2, '21': 1, '22': 2, '31': 1, '32': 2}
于 2012-10-31T11:48:55.607 に答える
7

の使用を検討しましたcollections.Counterか?

# python 2.7
>>> l = ['32', '22', '12', '31', '21', '11', '32']
>>> import collections
>>> collections.Counter(l)
Counter({'32': 2, '11': 1, '12': 1, '21': 1, '22': 1, '31': 1})
于 2012-10-31T12:30:45.707 に答える
2
data =  ['32', '22', '12', '32', '22', '12', '31', '21', '11']
sm = {i:0 for i in ['32', '22', '12', '31', '21','11']}
for i in data:
    sm[i] += 1
print sm

このようなもの?

于 2012-10-31T11:46:21.810 に答える
0

dataがリストであり、ビン内の数を数えたいと仮定します。bins辞書として使います。

bin = {'11': 0, '12': 0, '21': 0, '22': 0, '31': 0, '32': 0}

for element in data:
    if element in bin:  # Ignore other elements in data if any
        bin[element] = bin[element] + 1

bins辞書には、データリストの各要素の頻度が含まれます。binsこれで、グラフプロットライブラリを使用して棒グラフをプロットするために使用できます。この投稿を使用して、棒グラフをプロットするためのmatplotlibの使用法を確認できるかもしれません。

于 2012-10-31T11:53:11.643 に答える