Si je comprends bien, c'est ce que vous voulez:
for FILE in *; do
gnuplot <<- EOF
set xlabel "Label"
set ylabel "Label2"
set title "Graph title"
set term png
set output "${FILE}.png"
plot "${FILE}" using 1:2:3:4 with errorbars
EOF
done
Cela suppose que vos fichiers se trouvent tous dans le répertoire courant. Ce qui précède est un script bash qui générera vos graphiques. Personnellement, j'écris généralement un fichier de commandes gnuplot (appelez-le, disons gnuplot_in
), en utilisant un script d'une certaine forme, avec les commandes ci-dessus pour chaque fichier et tracez-le en utilisant gnuplot < gnuplot_in
.
Pour vous donner un exemple, en python:
#!/usr/bin/env python3
import glob
commands=open("gnuplot_in", 'w')
print("""set xlabel "Label"
set ylabel "Label2"
set term png""", file=commands)
for datafile in glob.iglob("Your_file_glob_pattern"):
# Here, you can tweak the output png file name.
print('set output "{output}.png"'.format( output=datafile ), file=commands )
print('plot "{file_name}" using 1:2:3:4 with errorbars title "Graph title"'.format( file_name = datafile ), file=commands)
commands.close()
où Your_file_glob_pattern
est quelque chose qui décrit la dénomination de vos fichiers de données, que ce *
soit ou *dat
. Au lieu du glob
module, vous pouvez également l'utiliser os
bien sûr. Tout ce qui génère une liste de noms de fichiers, vraiment.
Solution Bash, utilisant un fichier de commande temporaire:
la source
Cela pourrait aider.
Exécutez le fichier de script en tant que
gnuplot filename
.Cliquez ici pour plus de détails.
la source