2016-07-01 5 views
1

Gibt es eine Möglichkeit, eine Datendatei durchzulaufen und bestimmte Punkte zu extrahieren, um sie im Diagramm zu plotten und das Bild dann unter gnuplot zu speichern?Eine Möglichkeit, Daten in einer Datei auf Gnuplot zu durchlaufen?

Zum Beispiel mein Code so weit:

save output 'graph.$n.png' 
set label 4 at $x,$y point pointtype 5 
plot 'C:\Users\Desktop\testdata.dat' using 2:3 w l 

Aber ich will das ‚x‘ und ‚y‘ in der Lage sein zu ändern, in einer Zeile, in der zweiten und dritten Säule enthalten die Werte zu sein, die Datendatei, dann plot sie in der Liniendiagramm, speichern Sie das Bild, und dann zur nächsten Zeile von Datenwerten Schleife. Es gibt über 100 Datenzeilen und ich möchte diesen Graphikprozess automatisieren.

Alle Hilfe ist dankbar, danke !!

Gnade

+1

Bitte geben Sie ein Muster Ihrer Daten an. Es ist viel einfacher zu verstehen, was Sie mit einigen Daten zu tun versuchen. – Matthew

+0

Möchten Sie die gesamte Grafik auf jedem Bild darstellen, aber nur einen Punkt auf jedem Bild beschriften? –

+0

Du meinst 'set output '...'' habe ich recht? –

Antwort

1

Wenn Sie awk haben, geben Sie im Terminal

awk 'BEGIN{i=1;while(i<100){printf "set term png;set output \"graph.%03d.png\";plot \"testdata.dat\" u 2:3 every 99999::"i"pt 5,\"testdata.dat\" u 2:3 w l;\n",i,i+5;i++}}' > test.plt 

dies die Plotten Datei "TEST.PLT" erzeugt, dann öffnen

gnuplot 

und Plotten-Datei laden

load "test.plt" 

Dann werden 100 Png-Dateien erzeugt.

Beispiel: Wenn die Datei testdata.dat die sin (x) -Funktion ist, erhalten Sie 100 png-Dateien mit Seriennummern wie die Abbildung unten. Ersetzen Sie für mehr als 100 Dateien

mit dem entsprechenden Wert. enter image description here

1

Ich weiß auch nicht "one-line-Lösung (ohne externe Hilfsdatei verwendet wird), aber es gibt eine 'prue Gnuplot' Lösung:

stats 'Grace.dat' 
n=STATS_records 
i=1 
load 'hundreds_of_plots.plt' 

wo 'hundreds_of_plots.plt' ist:

set term unknown 
plot [i-1:i-0.5] 'Grace.dat' u 0:2 
labelx=GPVAL_DATA_Y_MAX 
plot [i-1:i-0.5] 'Grace.dat' u 0:3 
labely=GPVAL_DATA_Y_MAX 
set label 4 at labelx,labely point pointtype 5 
set term png 
set output "".i.'.png' 
plot 'Grace.dat' u 2:3 w l 
i=i+1 
set output "".i.'.png' 
if (i<=n) reread