ich eine Datei haben, die aufgerufen wird: energy_vs_volume.dat
das ist die folgende:Gnuplot: verwenden, um eine Funktion, um eine Spalte einer Datendatei zu transformieren und plotten die transformierten Daten und die Funktion
# Volume Energy
123.598570 -1.883015140352E+03
124.960411 -1.883015431207E+03
126.122583 -1.883015514359E+03
126.332431 -1.883015514750E+03
I haben eine Funktion in daß wandelt der energy
zu pressure
, das ist die folgende:
E0=-1883.01544309
B0=32.13
V0=126.4025
B0_prime=-0.95
f0=(3.0/2.0)*B0
f1(x)=((V0/x)**(7.0/3.0))-((V0/x)**(5.0/3.0))
f2(x)=((V0/x)**(2.0/3.0))-1
P(x)= f0*f1(x)*(1+(3.0/4.0)*(B0_prime-4)*f2(x))
ich möchte in der gleichen Handlung Parzelle:
Tor # 1: Die Funktion P(x)
Ziel # 2: Alle 4 Reihen von diskreten Daten in der Datei Energy
energy_vs_volume.dat
, es konvertieren Druck, um die Funktion und plotten diese 4 Punkte wie y axis: pressure
; x axis: volume
Bisher habe ich dieses Ziel erreicht haben:
set encoding utf8
set termoption enhanced
E0=-1883.01544309
B0=32.13
V0=126.4025
B0_prime=-0.95
f0=(3.0/2.0)*B0
f1(x)=((V0/x)**(7.0/3.0))-((V0/x)**(5.0/3.0))
f2(x)=((V0/x)**(2.0/3.0))-1
P_Birch_Murnaghan(x)= f0*f1(x)*(1+(3.0/4.0)*(B0_prime-4)*f2(x))
set xrange [123:138]
plot P_Birch_Murnaghan(x) with line lt -1 lw 3
Dieser druckt die kontinuierliche Funktion der P(x)
->Ziel # 1
Um Ziel # 2 möglich zu machen, ich Fügen Sie dem Skript folgendes hinzu:
plot "energy_vs_volume.dat" using (P(x)):2 with line lt -1 lw 3
oder ähnlich mit $
, aber es funktioniert nicht.
Ich würde mich sehr freuen, wenn Sie mir helfen könnten.
EDIT:
ich brauchen würde, um die genauen Werte der Umwandlung wissen (die erzeugten Drücke für die 4 Daten-Volumes). Gibt es eine Möglichkeit, die Ausgabe in eine Datei umzuleiten? etwas ähnlich der Idee von Plot energy_vs_volume.dat" using 1:(P($1)) > file.txt
?
@Christoph Nein ... Es funktioniert auch nicht ... –
Sorry, ich habe die Beschreibung falsch gelesen. Siehe meine Antwort – Christoph