패키지는 PYPI에서도 출시됩니다.
PYPI의 독자에게는 여기에 부탁드립니다.
실험 데이터 및 데이터 처리 스크립트, 그림 및 계산 결과 (레벨 1에서 레벨 4까지)는 USTCPHYSEXPDATA 프로젝트를 참조하십시오. 실험 데이터, 데이터 처리 스크립트, 그림 및 일부 결과 (실험 수준 I에서 IV까지) USTCPHYSEXPDATA 프로젝트를 방문하십시오.
OriginLab 또는 Excel을 사용하고 싶지 않습니까? 파이썬을 시도하십시오!
궁극적 인 목표는 대형 객체 실험 데이터를 자동으로 처리하고 이미지를 그리며 인쇄 가능한 문서 생성 및 온라인 인쇄 시스템에 문서를 제출하기위한 일련의 도구를 구축하는 것입니다. 일반적인 데이터 처리 요구에 대해 단순화 및 자동화가 달성됩니다. 몇 가지 간단한 코드 라인만으로도 드로잉, 피팅, 불확실성 계산과 같은 큰 객체 실험과 같은 일반적인 작업을 완료 할 수 있습니다.
이상과 현실 사이에는 여전히 큰 차이가 있습니다. 현재 Matplotlib 드로잉 라이브러리, 간단한 피팅, 파일 입력 및 DOCX 생성 만 반복적 인 노동을 단순화하기 위해 포장됩니다.
이제 Matplotlib 플로팅 라이브러리 만 래핑하고 간단한 회귀, Easy File Input 및 docx 생성을 구현했습니다. 반복적 인 작품을 단순화합니다.
관련 블로그 : 내 홈페이지의 USTC 러그 페이지의 페이지
패키지를 설치하십시오
참치 거울을 사용하여 가속하십시오. Numpy 및 Matplotlib와 같은 묘사가 자동으로 설치됩니다.
pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple physicsexp
설치 테스트 (선택 사항)
>>> from physicsexp.mainfunc import *
>>> from physicsexp.gendocx import *
>>>
오류가 없으면 준비가되었습니다! 오류가 발생하면 문제를 자유롭게 열어주십시오.
예제 스크립트 실행 (권장)
python3 ./physicsexp/example/plot.py
그래프가 튀어 나와 인쇄 할 준비가 된 생성 된 Gen.docx 인 .png에 저장되고 ./physicsexp/example 디렉토리에서 출력으로 인쇄 된 계산이 표시됩니다. ustcphysexpdata를 복제하여 실제 사례를 시도 할 수도 있습니다. 그런 다음 코드를 수정하거나 자신의 코드를 작성하여 데이터를 처리 할 수 있습니다!
여러 줄의 데이터를 입력하고 데이터를 플롯하고 선형 회귀를 수행하며 플롯을 포함하는 인쇄 가능한 DOCX 문서를 생성하고 결과를 분석하는 실제 예제입니다.
정말로 알고 싶다면 실험은 전자의 상대적 동역학 에너지 대 운동량 관계 (베타-레이)를 검증하고 다른 두께의 알루미늄 조각으로 베타 레이의 추출을 측정하는 것입니다.
먼저 데이터를 data.txt 에 넣습니다 .
# 位置x
e -2
23. 24.2 25.5 26.5 27.7 29. 30.5 31.8
# 峰位N
245.77 291.79 336.40 378.52 417.94 456.14 510.12 544.95
# 铝片数量M
0 1 2 3 4 5
# 选区计数N
43901 34258 28725 23670 19386 16866
# 사용하여 댓글 줄을 추가하고 e * 추가하여 크기 순서를 지정할 수 있습니다. 따라서 전환없이 원래의 종이 온 데이터를 직접 기록 할 수 있습니다.
그런 다음 파이썬을 쓸 시간입니다
헤더 및 수입
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from physicsexp . mainfunc import *
from physicsexp . gendocx import * readoneline 함수로 파일을 쉽게 읽으십시오
fin = open ( './data.txt' , 'r' , encoding = 'utf-8' )
pos = readoneline ( fin )
N = readoneline ( fin )
Al_num = readoneline ( fin )
Cnt = readoneline ( fin )
fin . close ()일부 결과를 계산하고 인쇄합니다. 이것은 파이썬입니다. 당신은 당신이 좋아하는 모든 것을 쉽게 할 수 있습니다. (이 부분은 라이브러리와 관련이 없으며 이것을 건너 뛸 수 있습니다)
a = 2.373e-3
b = - .0161
dEk = .20
c0 = 299792458.
MeV = 1e6 * electron
Emeasure = a * N + b + dEk
x0 = .10
R = ( pos - x0 ) / 2
B = 640.01e-4
Momentum = 300 * B * R
Eclassic = (( Momentum * MeV ) ** 2 / ( 2 * me * c0 ** 2 )) / MeV
Erela = np . array ([ math . sqrt (( i * MeV ) ** 2 + ( me * c0 ** 2 ) ** 2 ) - me * c0 ** 2 for i in Momentum ]) / MeV
print ( 'pos t ' , pos )
print ( 'R t ' , R * 100 )
print ( 'pc t ' , Momentum )
print ( 'N t ' , N )
print ( 'Eclas t ' , Eclassic )
print ( 'Erela t ' , Erela )
print ( 'Emes t ' , Emeasure )자, 음모!
첫 번째 그래프 : 한 그림의 세 곡선. simple_plot 사용. 플롯 레이블에서 라텍스를 사용할 수 있습니다. 그래프는 1.png 로 저장됩니다. show=0 사용하여 한 그림에 여러 줄을 플로팅하십시오.
simple_plot ( Momentum , Emeasure , show = 0 , issetrange = 0 , dot = '+' , lab = '测量动能' )
simple_plot ( Momentum , Eclassic , show = 0 , issetrange = 0 , dot = '*' , lab = '经典动能' )
simple_plot ( Momentum , Erela , dot = 'o' , save = '1.png' , issetrange = 0 , xlab = '$pc/MeV$' , ylab = '$E/MeV$' , title = '电子动能随动量变化曲线' , lab = '相对论动能' ) 두 번째 그래프, 간단한 곡선, 2.png 로 저장 :
Len = 150
Cnt = Cnt / Len
simple_plot ( Al_num , Cnt , xlab = '铝片数' , ylab = '选区计数率(射线强度)' , title = '$ \ beta$射线强度随铝片数衰减曲线' , save = '2.png' ) 세 번째 그래프, simple_linear_plot 사용하여 선형 맞춤이있는 곡선은 3.png 로 저장되었습니다.
CntLn = np . log ( Cnt )
d = 50
Al_Real = Al_num * d
slope , intercept = simple_linear_plot ( Al_Real , CntLn , xlab = '质量厚度$g/cm^{-2}$' , ylab = '选区计数率对数(射线强度)' , title = '半对数曲线曲线' , save = '3.png' )
print ( - slope )
print ( math . log ( 1e4 ) / ( - slope ))
print (( math . log ( Cnt [ 0 ]) - 4 * math . log ( 10 ) - intercept ) / slope )둘 다 문서에 사진을 직접 넣지 마십시오!
한 줄의 코드를 사용하면 위의 3 장의 그림과 적합한 결과가 포함 된 인쇄용 DOCX 문서를 생성하십시오.
gendocx ( 'gen.docx' , '1.png' , '2.png' , '3.png' , 'slope, intercept: %f %f' % ( slope , intercept ))결과
산출:
pos [0.23 0.242 0.255 0.265 0.277 0.29 0.305 0.318]
R [ 6.5 7.1 7.75 8.25 8.85 9.5 10.25 10.9 ]
pc [1.2480195 1.3632213 1.48802325 1.58402475 1.69922655 1.8240285
1.96803075 2.0928327 ]
N [245.77 291.79 336.4 378.52 417.94 456.14 510.12 544.95]
Eclas [1.52375616 1.81804848 2.16616816 2.45469003 2.82471934 3.25488743
3.78910372 4.28491053]
Erela [0.83752628 0.94478965 1.0622588 1.15334615 1.26333503 1.3831891
1.52222218 1.64324566]
Emes [0.76711221 0.87631767 0.9821772 1.08212796 1.17567162 1.26632022
1.39441476 1.47706635]
0.0038199159787357996
2411.136900195471
2402.45428200782
생성 된 DOCX :

내 이름을 당신의 이름으로 바꾸는 것을 잊지 마십시오.
나중에 Jupyter Notebook을 사용하는 것이 Python 편집기에서 코딩하는 것보다 훨씬 낫다는 것을 알았습니다.

또한 Jupyterhub는 사용자 그룹에 대해 Jupyter 노트북 액세스를 제공 할 수 있습니다. 여러 사람이 실험 데이터 처리 스크립트를 서로 공유하려는 일반적인 사례입니다.
./jupyterhub에서는 공유 투쟁, 더미 인증으로 Jupyterhub : Docker Spawner를 실행하는 데 사용되는 구성이 있습니다. 말 그대로 보안 또는 액세스 제어는 없지만 개인 서버의 신뢰할 수있는 사람들 그룹에게는 허용됩니다.
예제를 읽은 후 사용하는 방법을 알고 싶습니까?
당신은 할 수 있습니다 :
그러나, 그들은 당신의 기계에서 직접 실행하려는 것이 아니며, 아무런 변화도없이 당신에게 정답을 마술처럼 제공하지만, 당신이 실제로 그것을 실행하고 싶다면,이 저장소에 대한
git reset과 어두운 역사로 뛰어 들어가는 것은 최후의 수단입니다.
소스 코드를 직접 읽으십시오. 특히 physicsexp/mainfunc.py 및 physicsexp/gendocx.py 대부분의 사용 사례를 다루는 예제와 함께 기능 선언과 추가로 이용 가능한 옵션을 확인하면됩니다 (삶을 더 쉽게 만들 수 있음).
또는 문제를여십시오. USTC 학생 인 경우 QQ/이메일로 저에게 연락하십시오. 연락처는 내 웹 사이트에 있습니다.
그러나이 작품 중 어느 것도 없다면 좌절하지 마십시오. 이 프로젝트에는 경고가 전혀 없습니다.
이러한 도구를 사용하여 효율성을 높일 수 있습니까? 모르겠지만 아마도 할 수 없습니다.
** 그러나 더 많은 시간을 보내더라도 기분이 나아질 수 있다면 사용하십시오. **
마지막으로,이 프로젝트에 시간을 낭비하기 전에 두 번 생각하고 대신 인생을 즐기고 진짜 물리학을 배우고 (소년 소녀) 친구를 찾으십시오.
여기.