web-dev-qa-db-fra.com

boucle sur tableau dans gnuplot

Cette question est liée à Structure de boucle à l'intérieur de gnuplot? et réponse par DarioP .

gnuplot 4.6 a introduit la commande do. Comment puis-je l'utiliser pour parcourir un tableau de fichiers et de couleurs par exemple? Quelle est la syntaxe correcte?

colors = "red green #0000FF"
files = "file1 file2 file3"

do for [i=1:3] {
  plot files(i).".dat" lc colors(i)
}
27
tommy.carstensen

Si vous souhaitez avoir tous les fichiers dans un seul tracé, vous devez utiliser plot for[... (pris en charge depuis la version 4.4). Boucler plusieurs commandes plot avec do for (pris en charge uniquement depuis la version 4.6) ne fonctionne qu'en mode multiplot.

Les deux solutions suivantes tracent toutes les données dans un graphique, mais diffèrent un peu dans les itérations.

La première solution utilise Word pour extraire un Word d'une chaîne directement lors du traçage.

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

La deuxième solution modifie le linetype, puis itère directement sur la liste Word au lieu d'utiliser un index.

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'
38
Christoph