2013-02-20 10 views
9

Die folgende gnuplot Code funktioniert gut:Doing Berechnungen in gnuplot des Plotbefehl

plot 'data.txt' using 2:4 ' %lf %lf %lf %lf' title "1 PE" with linespoints; 

Im folgenden Code, möchte ich sagen: „Verwenden Sie die Nummer aus Spalte 4, aber es dann durch die Anzahl von Spalte teilen 3". Oder: "Verwenden Sie die Nummer aus Spalte 2, aber teilen Sie sie durch die Konstante 2.0". Der folgende Code demonstriert, was ich erreichen möchte, aber es funktioniert nicht.

plot 'data.txt' using 2:4/4 ' %lf %lf %lf %lf' title "1 PE" with linespoints; 
plot 'data.txt' using 2:4/2.0 ' %lf %lf %lf %lf' title "1 PE" with linespoints; 

Ist so etwas möglich?

Antwort

15

ich in der Regel nicht mit Datendateien wie diese formatiert arbeiten, aber ich glaube, Sie suchen so etwas wie:

#divide column 4 by column 3 
plot 'data.txt' using 2:($4/$3) ' %lf %lf %lf %lf' title "1 PE" with linespoints 

#divide column 4 by constant 10.0 
plot 'data.txt' using 2:($4/10.0) ' %lf %lf %lf %lf' title "1 PE" with linespoints 

Als Randbemerkung, ich glaube nicht, dass es keinen Grund ist die für das Bestehen format portion zur Verwendung hier. Gnuplot teilt die Datendatei auf Whitespace gerade gut auf:

plot 'data.txt' using 2:($4/$3) title "1 PE" with linespoints 

sollte gut gerade funktionieren.

+0

Vielen Dank, das funktioniert. Auch, ja, die Formatstrings waren nicht nötig, cool! – Johannes

+0

Was ist mit dem Teilen einer Spalte von Datei1 durch eine Spalte aus Datei 2? – Ruzayqat

+0

@Ruzayqat - Ich habe lange nicht mehr in Gnuplot gearbeitet, aber damals gab es keine Möglichkeit, das zu tun. Sie würden eine Art Werkzeug benötigen, um die Spalten zu komprimieren und dann könnten Sie die Daten pipen. – mgilson