Si entiendo correctamente, esto es lo que quieres:
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
Esto supone que sus archivos están todos en el directorio actual. Lo anterior es un script bash que generará sus gráficos. Personalmente, generalmente escribo un archivo de comando gnuplot (llámelo, digamos gnuplot_in
), usando un script de alguna forma, con los comandos anteriores para cada archivo y trazándolo usando gnuplot < gnuplot_in
.
Para darle un ejemplo, 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()
donde Your_file_glob_pattern
es algo que describe el nombre de sus archivos de datos, ya sea *
o *dat
. En lugar del glob
módulo, también puedes usarlo os
, por supuesto. Lo que sea que genere una lista de nombres de archivo, realmente.
Solución Bash, usando un archivo de comando temporal:
fuente
Esto puede ayudar.
Ejecute el archivo de script como
gnuplot filename
.Haga clic aquí para más detalles.
fuente