Wie teile ich eine Spalte in Gnuplot?

11

Ich habe eine Gnuplot-Datendatei. Ich würde es gerne zeichnen, aber jeden Wert in der x-Achse durch n teilen.

Kann ich dies in gnuplot tun oder muss ich die Datendatei neu schreiben?

user13798
quelle
Diese Operation wird allgemein als "Skalierung" bezeichnet. Vielleicht verdient dieses Wort den Titel?
Dmitry Grigoryev

Antworten:

24

Angenommen, die xWerte befinden sich in der ersten Spalte der Datei 'test.dat'und die yWerte in der zweiten Spalte derselben Datei, können Sie Folgendes schreiben:

plot 'test.dat' using ($1/n):($2)

Weitere Informationen und Beispiele zum Schlüsselwort finden Sie im Handbuch'using' .

Beachten Sie, dass dadurch die Werte Ihrer Datendatei nicht geändert werden 'test.dat'. Wenn Sie die Datendatei lieber neu schreiben möchten, können Sie dies mit verwenden awk. Beispielsweise:

awk '{print $1/n,$2}' test.dat > testnew.dat

ersetzt die xWerte in der ersten Spalte von test.datmit x/nund generiert eine neue Datei mit dem Namen testnew.dat.

mrucci
quelle
Übermittelte eine Bearbeitung, um einen fehlerhaften Link zur letzten HTML-Version des Handbuchs zu beheben. Beachten Sie auch, dass die Handbücher in neueren Versionen nur als PDF verfügbar sind. gnuplot.info/documentation.html
Asahiko
Wir können sogar die Werte bestimmter Spalten teilen:plot "path/to/data.dat" using 1:($5/$3) with lines
Dohn Joe