Das Paket wird auch auf PYPI veröffentlicht.
Für Leser von PYPI hier bitte.
Für meine experimentellen Daten- und Datenverarbeitungsskripte, Bilder und Berechnungsergebnisse (von Stufe 1 bis Level 4) finden Sie das ustcphysexpdata -Projekt. Meine Experimentdaten, Datenverarbeitungsskripte, Abbildungen und einige Ergebnisse (von Experiment -Stufe I bis IV) besuchen Sie bitte das ustcphysexpdata -Projekt.
Möchten Sie nicht OriginLab oder Excel verwenden? Versuchen Sie es mit Python!
Das ultimative Ziel ist es, eine Reihe von Tools für die automatische Verarbeitung großer experimenteller Objektdaten, das Zeichnen von Bildern, das Generieren druckbarer Dokumente und das Überreichen von Dokumenten an Online -Drucksysteme zu erstellen. Vereinfachung und Automatisierung wird für die gemeinsamen Datenverarbeitungsanforderungen erreicht. Mit nur wenigen einfachen Codezeilen, gängigen Aufgaben wie großen Objektexperimenten wie Zeichnen, Anpassung und Berechnung der Unsicherheit können abgeschlossen werden.
Es gibt immer noch eine große Lücke zwischen Ideal und Realität. Gegenwärtig werden nur Matplotlib -Zeichnungsbibliothek, einfache Anpassung, Dateieingabe und DOCX -Generation verpackt, um sich wiederholende Arbeit zu vereinfachen.
Jetzt habe ich nur die Matplotlib -Bibliothek eingewickelt, einfache Regression, einfache Dateieingabe und docx -Generation implementiert. Um wiederholte Werke zu vereinfachen.
Verwandter Blog: Seiten auf USTC -Lug -Seiten auf meiner Homepage
Installieren Sie das Paket
Verwenden Sie den Thunfischspiegel, um zu beschleunigen. Angaben wie Numpy und Matplotlib werden automatisch installiert.
pip install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple physicsexp
Testen Sie die Installation (optional)
>>> from physicsexp.mainfunc import *
>>> from physicsexp.gendocx import *
>>>
Wenn kein Fehler, dann sind Sie bereit! Wenn ein Fehler auftritt, können Sie ein Problem öffnen.
Führen Sie das Beispielskript aus (empfohlen)
python3 ./physicsexp/example/plot.py
Sie werden sehen, dass Grafiken in .png, einem generierten Gen.docx, gespeichert sind, und in der Ausgabe in ./physicsexp/example -Verzeichnis. Sie können auch ustcphysexpdata klonen, um einige reale Fälle auszuprobieren. Dann können Sie den Code ändern oder Ihren eigenen Code schreiben, um Ihre Daten zu verarbeiten!
Es handelt sich um ein reales Beispiel für die Eingabe mehrerer Datenzeilen, zeichnen die Daten und erstellen lineare Regressionen und generieren ein druckbares DOCX-Dokument, das das Diagramm enthält und die Ergebnisse analysieren.
Wenn Sie es wirklich wissen möchten, geht es im Experiment darum, die relative kinetische Energie und die Impulsbeziehung von Elektronen (Beta-Ray) zu überprüfen und die Extraktion von Beta-Ray durch Aluminiumstücke unterschiedlicher Dicke zu messen.
Geben Sie zunächst Ihre Daten in data.txt wie folgt ein:
# 位置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
Sie können # verwenden, um einige Kommentarzeilen hinzuzufügen und e * , um die Größenordnung anzugeben. Sie können daher die ursprünglichen On-Paper-Daten ohne Konvertierung direkt aufschreiben.
Dann ist es Zeit, Python zu schreiben
Header & Importe
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from physicsexp . mainfunc import *
from physicsexp . gendocx import * Lesen Sie die Datei einfach mit der readoneline -Funktion
fin = open ( './data.txt' , 'r' , encoding = 'utf-8' )
pos = readoneline ( fin )
N = readoneline ( fin )
Al_num = readoneline ( fin )
Cnt = readoneline ( fin )
fin . close ()Berechnen und drucken Sie einige Ergebnisse. Dies ist Python, Sie können alles tun, was Sie möchten. (Dieser Teil bezieht sich nicht mit der Bibliothek, Sie können dies überspringen.)
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 )Nun, Handlung!
Erster Diagramm: Drei Kurve in einer Abbildung. Mit simple_plot . Sie können Latex in Handlungsetiketten verwenden. Graph wird auf 1.png gespeichert. Verwenden Sie show=0 um mehrere Zeilen für eine Abbildung zu zeichnen.
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 = '相对论动能' ) Zweites Diagramm, eine einfache Kurve, gespeichert auf 2.png :
Len = 150
Cnt = Cnt / Len
simple_plot ( Al_num , Cnt , xlab = '铝片数' , ylab = '选区计数率(射线强度)' , title = '$ \ beta$射线强度随铝片数衰减曲线' , save = '2.png' ) Dritter Diagramm, eine Kurve mit einer linearen Anpassung mit simple_linear_plot , gespeichert auf 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 )Setzen Sie nicht beide selbst Bilder in Dokumente!
Generieren Sie mit einer einzigen Codezeile ein druckbares DOCX -Dokument mit den oben genannten drei Bildern und den Anpassungsgebnissen.
gendocx ( 'gen.docx' , '1.png' , '2.png' , '3.png' , 'slope, intercept: %f %f' % ( slope , intercept ))Ergebnisse
Ausgabe:
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
Erzeugte docx:

Vergessen Sie nicht, meinen Namen in Ihren zu ändern.
Später stellte ich fest, dass die Verwendung von Jupyter Notebook viel besser ist als das Codieren im Python -Editor:

Und JupyterHub kann Jupyter Notebook -Zugriff für eine Gruppe von Benutzern gewähren: den gemeinsamen Fall, wenn mehrere Personen ihr Experimentdatenverarbeitungsskript miteinander teilen möchten.
In. Im wahrsten Sinne des Wortes keine Sicherheits- oder Zugriffskontrolle, aber für eine Gruppe vertrauenswürdiger Personen auf einem privaten Server akzeptabel.
Möchten Sie wissen, wie Sie nach dem Lesen des Beispiels verwenden können?
Du kannst:
Sie sollen jedoch nicht direkt auf Ihrer Maschine laufen und Ihnen auf magische Weise ohne Änderung eine korrekte Antwort geben. Wenn Sie sie wirklich ausführen möchten, ist ein
git resetin diesem Repository und ein Tauchgang in die dunkle Geschichte der letzte Ausweg.
Lesen Sie den Quellcode selbst. Insbesondere physicsexp/mainfunc.py und physicsexp/gendocx.py - Mit dem Beispiel müssen Sie die Funktionen der Funktionen und zusätzliche verfügbare Optionen nur überprüfen (sie erleichtern das Leben).
Oder ein Problem öffnen. Wenn Sie auch ein USTC -Student sind, kontaktieren Sie mich einfach mit QQ/E -Mail. Kontakte sind auf meiner Website.
Aber sei nicht frustriert, wenn keines dieser funktioniert. Das Projekt hat absolut keine Warnung.
Und können diese Tools Ihre Effizienz steigern? Ich weiß es nicht, kann es aber wahrscheinlich nicht.
** Wenn diese Sie jedoch trotz mehr Zeit besser fühlen können, verwenden Sie es. **
Überlegen Sie sich schließlich zweimal, bevor Sie Zeit für dieses Projekt verschwenden, stattdessen Ihr Leben genießen, echte Physik lernen und einen (Jungen | Mädchen) Freund finden.
Hier.