¿Hay alguna forma de recuperar datos de forma iterativa de varios archivos y trazarlos en el mismo gráfico en gnuplot? Supongamos que tengo archivos como data1.txt, data2.txt ...... data1000.txt; cada uno con el mismo número de columnas. Ahora podría escribir algo como
plot "data1.txt" using 1:2 title "Flow 1", \
"data2.txt" using 1:2 title "Flow 2", \
.
.
.
"data1000.txt" using 1:2 title "Flow 6"
Pero esto sería realmente un inconveniente. Me preguntaba si hay una manera de recorrer la parte de la trama en gnuplot.
bash
Función realmente acogedora en la respuesta a continuaciónRespuestas:
Seguro que hay (en gnuplot 4.4+):
La variable
i
se puede interpretar como una variable o una cadena, por lo que podría hacer algo comosi desea tener líneas desplazadas entre sí.
Escriba
help iteration
en la línea de comando de gnuplot para obtener más información.También asegúrese de ver la respuesta de @ DarioP sobre la
do for
sintaxis; que te da algo más parecido a unfor
bucle tradicional .fuente
Eche un vistazo también al
do { ... }
comando desde gnuplot 4.6 ya que es muy poderoso:http://www.gnuplotting.org/gnuplot-4-6-do/
fuente
help do
.Tengo el script all.p
Aquí las dos últimas filas son literales, no heurísticas. Entonces corro
Cambie
*.dat
al tipo de archivo que tiene o agregue tipos de archivo.Siguiente paso: agregue a ~ / .bashrc esta línea
y ponga su archivo en
all.p
su directorio personal y listo. Puede trazar todos los archivos en cualquier directorio escribiendo py enter.EDITAR Cambié el comando, porque no funcionó. Anteriormente contenía
list(i)=word(system(ls -1B *.dat),i)
.fuente
list=system(ls -1B *.dat)
.list=system('ls -1B *.dat')
Utilice lo siguiente si tiene columnas discretas para trazar en un gráfico
fuente
Quería usar comodines para trazar múltiples archivos a menudo ubicados en diferentes directorios, mientras trabajaba desde cualquier directorio. La solución que encontré fue crear la siguiente función en
~/.bashrc
y utilícelo, por ejemplo
plo *.dat ../../dir2/*.out
, como , para trazar todos los.dat
archivos en el directorio actual y todos los.out
archivos en un directorio que pasa a ser un nivel superior y es llamadodir2
.fuente
plo() { [[ $# -eq 0 ]] && echo "Usage plo file1 file2 ..." || { .... } }
para evitar llamargnuplot
sin archivos.Aquí está el comando alternativo:
fuente