2013-02-28 28 views
0

所以我做了一個程序,做什麼,我需要的,主要情節從我的數據直方圖,但我有幾個問題吧:如何在pylab中創建直方圖'touch'?

這裏的程序:

# -*- coding: cp1250 -*- 
from __future__ import division 
from numpy import * 
from matplotlib import rc 
from matplotlib.pyplot import * 
import numpy as np 
import matplotlib.pyplot as plt 


data = loadtxt("mioni.txt", int) 

nuz = len(data) 
nsmp = 20 
duz = int(nuz/nsmp) 

L = [] 

for i1 in range(0,nsmp): 
    suma = 0 
    for i2 in range(0,duz): 
     suma += data[i1*duz+i2] 
    L.append(suma) 

print L 


plt.hist(L, 20, normed=1, facecolor='blue', alpha=0.75) 
plt.xlabel('t(\mu s)') 
plt.ylabel('Broj događaja') 
plt.axis([0,10,0,300]) 
plt.grid(True) 

plt.show() 

編輯:所以我設法對付醜資金,但現在我的直方圖不工作:( 數據在這裏:http://dropcanvas.com/kqjem

什麼是錯,我得到噸的錯誤和Python崩潰:\

+0

你的問題的心臟是「我如何獲得直方圖觸摸」。我正在編輯您的標題和問題以反映這一點。 – Hooked 2013-02-28 14:57:03

+0

我也刪除了有關非線性擬合的部分,不僅是第二個問題(可以這樣問),您不會給我們任何實際的示例數據來幫助您。 – Hooked 2013-02-28 14:59:42

+0

好吧,我會單獨提問,但即使是直方圖部分也不是那麼麻煩,因爲我可以繪製它。令我困擾的事實是,如何使這些數字成爲任意多少點我作爲一個分部。現在我必須手動編寫每筆款項,這是非常乏味的... – 2013-02-28 15:02:55

回答

1
+0

我試過了,但是由於一些未知的原因,它不起作用:\ – 2013-02-28 14:34:57

+0

如果您將數據文件發佈到某處,我會嘗試查找未知原因。 – HYRY 2013-02-28 14:38:17

+0

http://www.megafileupload.com/en/file/397186/mioni-txt.html 下面是數據... – 2013-02-28 15:00:14

2

的問題來自於具有離散的數據集,它看起來像你的bins參數設置爲一些不適合。使用pylab.hist參數histtype="stepfilled"使它們在沒有線條的情況下觸摸。這裏有幾個例子:

import numpy as np 
import pylab as plt 

# Sample data 
X1 = np.random.exponential(1.0,size=5000) 
X2 = [int(z) for z in X1] 

plt.subplot(221) 
plt.hist(X1,bins=50) 
plt.title('Continuous Data') 

plt.subplot(222) 
plt.hist(X2,bins=50) 
plt.title('Discrete Data') 

plt.subplot(223) 
plt.hist(X2,histtype='stepfilled') 
plt.title('Discrete Data Filled') 

plt.show() 

enter image description here

+0

這解決了我的直方圖問題:D – 2013-02-28 15:06:04