나는 float (항상 0보다 작음)에 값 집합을 가지고 있습니다. 나는 히스토그램으로 bin에 넣기를 원한다. i, e. 히스토그램에서 각 막대 값의 범위를 포함 [0,0.150)Howto bin 시리즈는 플로트 값을 파이썬에서 히스토그램으로 변환합니까?
내가 가진 데이터는 다음과 같습니다 : 내 코드 파크
0.000
0.005
0.124
0.000
0.004
0.000
0.111
0.112
내가
[0, 0.005) 5
[0.005, 0.011) 0
...etc..
과 같은 결과를 얻을 것으로 기대 이하
나는이 광산 코드와 같은 binning을하려고 노력했다. 하지만 작동하지 않는 것 같습니다. 그것을하는 올바른 방법은 무엇입니까?
#! /usr/bin/env python
import fileinput, math
log2 = math.log(2)
def getBin(x):
return int(math.log(x+1)/log2)
diffCounts = [0] * 5
for line in fileinput.input():
words = line.split()
diff = float(words[0]) * 1000;
diffCounts[ str(getBin(diff)) ] += 1
maxdiff = [i for i, c in enumerate(diffCounts) if c > 0][-1]
print maxdiff
maxBin = max(maxdiff)
for i in range(maxBin+1):
lo = 2**i - 1
hi = 2**(i+1) - 1
binStr = '[' + str(lo) + ',' + str(hi) + ')'
print binStr + '\t' + '\t'.join(map(str, (diffCounts[i])))
~
글쎄, 당신은 [0, 0.005로 정의 범위) (오른쪽 개방)하고있는 경우, "당신은 ... 기대"의 예에서 [0.005, 0.011) (왼쪽 닫힘) 출력은 다음과 같아야합니다. [0, 0.005) 4 [0.005, 0.011] 1 등 ... – Gacek
"작동하지 않는 것 같습니까?" 특정 불만 사항은 무엇입니까? 아니면 모든 사람들이 그것을 실행하고 출력에 대해 마음에 들지 않는 것을 추측하려고해야합니까? –
휠 재발 명을 피하기 위해, 특히 다음 단계가 히스토그램을 플로팅 할 경우 : 모든 것을 처리하는 Matplotlib 프레임 워크 사용을 고려해야합니다. – RedGlyph