对于μ子实验数据进行快速处理与分析

筛选后的“寿命测量”有效事件数据

import matplotlib.pyplot as plt
import pandas as pd
 
#names栏目抬头; delimiter 定义分隔符为' ', 
 
df = pd.read_csv('E:\PycharmProjects\muon1.txt', names=['time','id'], delimiter=' ')
#有网络的话甚至可以直接给网络链接:
df = pd.read_csv('http://phylab.fudan.edu.cn/lib/exe/fetch.php?media=exp:muon:muon_sifted_1.txt', names=['time','id'], delimiter=' ')
 
df
Out[20]: 
        time          id
0       1080  1072823444
1       1920  1072823553
2       3220  1072823606
3       3860  1072823639
 
df['time'].hist(bins=100, alpha=0.3, normed=True)
plt.show()

import numpy as np
 
#函数输出两列, 第一列为计数, 第二列为bins区间
cnts = np.histogram(df['time'],bins=range(0,20000,100))[0]
 
plt.plot(cnts)

# -*- coding: utf-8 -*-
# by whyx 2017/1
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
 
#names栏目抬头; delimiter 定义分隔符为' ',
 
#df = pd.read_csv('E:\PycharmProjects\muon1.txt', names=['time','id'], delimiter=' ')
#有网络的话甚至可以直接给网络链接:
df = pd.read_csv('http://phylab.fudan.edu.cn/lib/exe/fetch.php?media=exp:muon:muon_sifted_1.txt', names=['time','id'], delimiter=' ')
 
df['time'].hist(bins=100, alpha=0.3, normed=True)
plt.show()
 
cnts = np.histogram(df['time'],bins=range(0,20000,100))[0]
 
#plt.plot(cnts)
 
cnts = np.log(cnts)
#去掉第一个点(仪器精度所致),去掉后面的背景噪音.
cnts = cnts[1:100] 
 
x= range(0,len(cnts))
z1= np.polyfit(x,cnts,1)
p1= np.poly1d(z1)
 
xp= np.linspace(0,len(cnts))
 
plt.plot(x, cnts, '.', xp, p1(xp), '-')
 
plt.show()