2012-10-18 2 views
-5

일부 데이터 (TEMP_2)가 있으며 해당 데이터에 대한 배포를 얻고 싶습니다. 히스토그램을 사용하는 방법을 알고 있습니다.기존 데이터에 대한 배포

import numpy as np 
from pylab import * 

plt.figure(1) 
data1 = loadtxt("TEMP_2") 

a= data1[:,1] 
plt.hist(a,100, normed=True,) 
show() 

그러나 배포본이 필요했습니다. 누가 이것 좀 도와 주실 래요 ..

데이터 파일 :

다음해야 할 데이터에 맞는 정규 분포 플롯하기 위해
1000 299.23 
2000 310.56 
3000 308.21 
4000 305.86 
5000 305.21 
6000 301.35 
7000 295.37 
8000 307.80 
9000 295.61 
:  : 
:  : 
200000 307.18 
+2

당신은 당신이 원하는 일에 대해 더 구체적으로해야합니다. 원시 데이터는 그 자체로 (매우 특정적인) 분포입니다. –

+0

빈을 보여주는 분포도를 얻고 싶었습니다. 그냥 한 줄의 분포도 –

+0

"쓰레기통"이란 무엇입니까? – jsalonen

답변

0

:

먼저 당신이 계산해야을 , 이는 정규 분포가 귀하의 데이터에 가장 잘 맞습니다. scipy에 norm.fit이 있습니다. 다음으로 주어진 특성 (평균, 표준 편차)을 가진 정규 분포를 그릴 필요가 있습니다.

전체 스크립트를

# Load data 
import numpy as np 
from pylab import * 
data1 = loadtxt("TEMP_2") 
a = data1[:,1] 

# Fit data into normal distribution 
from scipy.stats import norm 
mean, stdev = norm.fit(a) 

# Plot normal distribution 
import matplotlib.mlab as mlab 
x = np.linspace(min(a), max(a), 100) 
plot(x, mlab.normpdf(x, mean, stdev)) 
show() 

결과 :

Plot screenshot

당신은 그럼 그냥 plot.show() 전에 추가, 너무 "빈"을 플롯하려면 :

plt.hist(a, len(data1), normed=True,) 
+0

좋아 보여요! 감사합니다 jsalonen 많이! –

+0

반갑습니다. 귀하의 질문이 매우 모호하다는 것을 알았을 때 이것이 올바른 종류의 분배 음모인지 정말로 확신 할 수 없습니다. – jsalonen

+0

Gaussian distribution은 제가 찾고자하는 것이 었습니다. 전에 언급하지 않은 것은 ... 우리가 올바른 페이지에 있다고 생각합니다 ... 고마워요! –

1

시도를 다음을 포함합니다 :

import matplotlib.pyplot as plt 
import numpy as np 
import matplotlib.mlab as mlab 
from scipy.stats import norm 

mean, sigma = norm.fit(data) #your data here 
x = np.linspace(-3,3,100) 
plt.plot(x,mlab.normpdf(x,mean,sigma)) 

plt.show() 

으로 여기에 설명 : python pylab plot normal distribution

+0

고마워요 luke14free! .. 그것은 위대한 작품! –

관련 문제