2011-01-11 4 views
2

Ich weiß, das sollte ziemlich einfach sein, aber ich konnte kein ähnliches Beispiel finden.GNUPlot: verschiedene Bereiche mit verschiedenen Stilen plotten

Ich muss verschiedene Bereiche einer Datendatei unterschiedlich darstellen, aber auf demselben Diagramm.

Zum Beispiel sagen meine Datendatei eine Funktion mit x und y-Werten. Ich möchte die ersten N-Werte mit einem Stil wie Linien und dann die nächsten M-Werte mit einem anderen Stil wie Punkten darstellen.

Ich dachte ich einen Plotbefehl ähnlich wie diese brauchen würde: Ich möchte auf verschiedene Bereiche der Funktionen unterscheiden

plot [1:5] "my.data" using 1:2 with lines, [6:12] using 1:2 with points, [13:19] using 1:2 with lines 

Wesentlichen.

Irgendwelche Ideen? Es tut mir leid, wenn es sich anhört, als würde ich herumschweifen, aber ich bin ziemlich ratlos.

Vielen Dank im Voraus!

Antwort

1

Ich glaube nicht, dass Sie Ihre Datendatei in gnuplot in verschiedene Bereiche teilen könnten, aber wenn Sie es außerhalb von gnuplot tun könnten, könnte das Problem leicht gelöst werden. nur den ersten Teil von ‚my.data‘ auf ‚my.data1‘ und die zweite zu ‚my.data2‘ und so weiter Nach dem Einfügen können Sie anrufen:

plot „my.data1“ mit 1: 2 Titel "Data 1" mit den Linien "my.data2" mit 1: 2 Titel "Data 2" mit Punkten

Sie können die Datei von Hand aufgespalten, oder wenn ich in R auch vorschlagen kann. Natürlich könnte es in Bash oder fast jeder (Skript-) Sprache erfolgen.

Ich hoffe, ich könnte helfen.

10

Sie könnten folgendes tun:

plot "mydat.txt" using 1:($1>0 ? $2 : 1/0) with lines, 
"" using 1:($1<=0 ? $2 : 1/0) with points 

edit: ich dit-Test, und es funktioniert, wenn x Variable < 0 Sie Punkte haben. Natürlich können Sie die Bedingungen so einstellen, dass Sie viele verschiedene Grafikformate aufnehmen können, solange sich die x-Werte Ihrer Funktion in der Datendatei befinden.