2016-05-24 7 views
1

Als Follow-up von: Gnuplot: Plotting several datasets with titles from one file, ich habe eine test.dat Datei:Gnuplot: Trägt man mehrere Datensätze mit Titeln aus dem Rohr

"p = 0.1" 
1 1 
3 3 
4 1 


"p = 0.2" 
1 3 
2 2 
5 2 

und ich kann es ohne Probleme zeichnen aus gnuplot mit:

> plot for [IDX=0:1] 'test.dat' i IDX u 1:2 w lines title columnheader(1) 

jedoch kann ich die Daten nicht leiten.

Hier ist die einzige Zeile Beispiel:

$ cat test.dat | gnuplot --persist -e "plot for [IDX=0:1] '-' i IDX u 1:2 w lines title columnheader(1)" 
line 10: warning: Skipping data file with no valid points 

ich die Warnmeldung erhalten und nur der erste Satz aufgetragen ist. Ich habe versucht, am Ende der Datei eine e hinzuzufügen, aber kein Glück ... Das sollte trivial sein, mache ich einen dummen Fehler?


Ich habe ein wenig mehr herumspielen. So sind diese Werke:

gnuplot --persist -e "plot for [IDX=0:1] 'test.dat' i IDX u 1:2 w lines title columnheader(1)" 
gnuplot --persist -e "plot for [IDX=0:1] '< cat test.dat' i IDX u 1:2 w lines title columnheader(1)" 

Diese nicht:

cat test.dat | gnuplot --persist -e "plot for [IDX=0:1] '-' i IDX u 1:2 w lines title columnheader(1)" 
cat test.dat | gnuplot --persist -e "plot for [IDX=0:1] '< cat' i IDX u 1:2 w lines title columnheader(1)" 

Es sieht aus wie ein Bug zu mir. Ich habe einige Gnuplot-Versionen (4.6.6, 5.0.0, 5.0.3) ausprobiert, aber alle haben das gleiche Verhalten.

+0

Wäre es geeignet sein, die gnuplot zu verwenden '<' filename keyword to getdata from pipe? Und funktioniert es so? – bibi

+0

@bibi nicht wirklich, da ich die Daten aus einem anderen Prozess streamen, aber ja 'Plot ' DarioP

+0

Ich kann immer noch nicht herausfinden, warum nicht Ihren Befehl aus gnuplot – bibi

Antwort

2

Ok, ich habe es endlich in der Dokumentation. Beim Anschließen von Leitungen benötigt jede Indexauswahl die gesamten Daten zu wiederholen:

plot '-' index 0, '-' index 1 
2 
4 
6 


10 
12 
14 
e 
2 
4 
6 


10 
12 
14 
e 

oder, als eine viel einfachere Alternative kann man nur tun:

plot '-', '-' 
2 
4 
6 
e 
10 
12 
14 
e