好的,所以我有六个可能的数据值分别为'32'、'22'、'12'、'31'、'21'和'11'。 我将它们存储为字符串。 Python是否可以对数据进行排序并将其分成六个箱子,并显示每个箱子中有多少个? 或者直方图的输入必须是数字吗?
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}
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})
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
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
绘制条形图。也许您可以使用此 post 来检查 matplotlib 用于绘制条形图的用法。
listOfInts = map(int,listOfStrs)
。 - Matt