2012-10-31 3 views
9

OK 그래서 '32', '22', '12', '31', '21'및 '11'데이터 여섯 가지 값을 가질 수 있습니다. 문자열로 저장했습니다. 파이썬이 데이터를 정렬하고 여섯 개의 쓰레기통을 만들고 각각의 수를 얼마나 많이 보여줄 수 있습니까? 또는 히스토그램의 입력 값을 수치로해야합니까?파이썬에서 문자열 값의 히스토그램 만들기

+2

막대 그래프와 막대 그래프 사이에 차이가 있습니다. 막대 그래프는 여기에 적합하지만 히스토그램은 적합하지 않습니다. –

+0

그래도 막대 그래프를 사용했다면 각 데이터 조각을 수동으로 정렬해야 플로팅 전에 어떤 카테고리가 있는지 확인할 수 있습니까? 히스토그램처럼 나를 분류하기위한 방법이 있나요? –

+0

"히스토그램과 비슷하다"는 것은 무엇을 의미합니까? 내가 모르는 Python 히스토그램 라이브러리가 있습니까? –

답변

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} 
+0

고마워, 지금 일해야 해. –

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 

이와 비슷한 기능이 있습니까? data 가정

0

은 목록입니다 당신은 쓰레기통의 숫자를 계산합니다. 나는 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 사용법을 확인할 수 있습니다.

+1

그것은 매우 Pythonic하지 않습니다. –

+0

무엇이 잘못 되었나요? 왜 파이썬이 아닌가? – useratuniv

+1

목록 이해는 Pythonic이며 명시 적 루핑은 아닙니다. –

6

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}) 
+0

감사합니다.이 기능은 매우 유용 할 것 같지만 슬프게도 Python 2.6.6 버전 인 것 같습니다. –