2013-09-03 14 views

Antwort

32

Wenn Sie alle Dateien in einem einzigen Grundstück haben wollen, müssen Sie plot for[... (ab Version 4.4 unterstützt) verwenden. Looping über mehrere plot Befehle mit do for (nur seit Version 4.6 unterstützt) funktioniert nur in multiplot Modus.

Die folgenden beiden Lösungen zeichnen beide Daten in einem Diagramm, unterscheiden sich jedoch ein wenig in den Iterationen.

Die erste Lösung verwendet word, um ein Wort aus einer Zeichenfolge direkt beim Plotten zu extrahieren.

colors = "red green #0000FF" 
files = "file1 file2 file3" 
plot for [i=1:words(files)] word(files, i).'.dat' lc rgb word(colors, i) 

Die zweite Lösung ändert die linetype und wiederholt sich dann direkt über die Wortliste stattdessen einen Index zu verwenden.

colors = "red green #0000FF" 
files = "file1 file2 file3" 
set for [i=1:words(colors)] linetype i lc rgb word(colors, i) 
plot for [file in files] file.'.dat' 
+0

Ich bin gerade erst gekommen, um es jetzt zu testen. Ich bevorzuge Ihre zweite Lösung, die keinen Multi-Slot-Modus erfordert. Es klappt. Schöne Lösung. Ich wusste nichts über "Wörter" und "Wort", obwohl ich Gnuplot seit mehr als einem Jahrzehnt benutze. Vielen Dank. –

+0

@ tommy.carstensen Ihr Ansatz mit 'do for .. plot' funktioniert nur im' multiplot' Modus. Beide Lösungen verwenden 'plot für [...] und geben eine einzelne Grafik an. Ich habe meine Antwort zurückgewiesen, um dies zu klären. – Christoph

+2

Danke für die Klärung. Ich habe auch gelernt, dass "Wort" und "Wörter" in der String-Variablen-Demo für diejenigen, die das genauer studieren wollen, behandelt werden: http://gnuplot.sourceforge.net/demo/stringvar.html –