Ich muss einen einzelnen Punkt aus einer Zeile in der Datendatei zeichnen, die viele andere Zeilen und zwei Zeilen enthält. Ich weiß nicht, wie man eine einzelne Zeile in gnuplot auswählt, nicht die gesamte Datei der Daten. Irgendwelche Vorschläge bitte ???Wie zeichne ich eine bestimmte Teilmenge von Daten aus einer Datendatei mit gnuplot?
Antwort
Sie müssen herausfiltern. In gnuplot erfolgt dies mit dem Schlüsselwort every
.
Da Sie bieten nicht die Datei, die Sie hier darstellen möchten ist ein möglicher Hinweis auf Basis dieser Daten-Datei data.dat
:
10 62
11 95
12 74
13 33
14 70
youplot der Stelle, an der dritten Zeile (12,74) wie folgt aus:
plot 'data.dat' every ::2::2 w p
basierend auf der Dateistruktur kann dies variieren.
Vielleicht ist es mehrmals, wenn Sie zu tun haben, ist es gut, eine Variable zu setzen:
n=2
plot 'data.dat' every ::n::n w p
so dass einmal aufgetragen, können Sie tun:
n=3; replot
n=10; replot
...
Bitte lesen Sie die help every
Befehl in gnuplot
Wenn die Punkte, die Sie zeichnen möchten, nicht durch die Zeilennummer, sondern durch einen Wert in einer Spalte gekennzeichnet sind, können Sie diesen Trick inverwenden:
plot '-' using (($1==0)?$1:1/0):2 with points
-1 1
0 2
1 3
e
Dies kann zum Plotten verwendet werden, z.B. nur Punkte mit einem positiven x-Koordinate (Änderung ($1>=0)?$1:1/0
) oder auch die $0
pseudo-Spalte, die die Zeilenzahl enthält, welche Zeile in einer vielseitigeren Weise zu wählen als every
:
plot 'data.dat' using (((int($0)%3!=0)?$1:1/0):2 with points
Hier wir Zeichnen Sie 2 Zeilen von 3, natürlich können Sie auch nur eine Zeile mit ($0==LINE)?$1:1/0
auswählen.