splot examples example ejemplos gnuplot

examples - gnuplot label line



Estructura de bucle dentro de gnuplot? (6)

Aquí está el comando alternativo:

gnuplot -p -e ''plot for [file in system("find . -name //*.txt -depth 1")] file using 1:2 title file with lines''

¿Hay alguna forma de recuperar iterativamente datos de múltiples archivos y trazarlos en el mismo gráfico en gnuplot? Supongamos que tengo archivos como data1.txt, data2.txt ...... data1000.txt; cada uno tiene 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 inconveniente. Me preguntaba si hay una forma de recorrer la parte de la trama en gnuplot.


Eche un vistazo también al comando do { ... } desde gnuplot 4.6 ya que es muy poderoso:

do for [t=0:50] { outfile = sprintf(''animation/bessel%03.0f.png'',t) set output outfile splot u*sin(v),u*cos(v),bessel(u,t/50.0) w pm3d ls 1 }

http://www.gnuplotting.org/gnuplot-4-6-do/


Quería usar comodines para trazar múltiples archivos, a menudo colocados en diferentes directorios, mientras trabajaba desde cualquier directorio. La solución que encontré fue crear la siguiente función en ~/.bashrc

plo () { local arg="w l" local str="set term wxt size 900,500 title ''wild plotting'' set format y ''%g'' set logs plot" while [ $# -gt 0 ] do str="$str ''$1'' $arg," shift done echo "$str" | gnuplot -persist }

y plo *.dat ../../dir2/*.out , por ejemplo, como plo *.dat ../../dir2/*.out , para trazar todos los archivos .dat en el directorio actual y todos los archivos .out en un directorio que resulte ser un nivel superior y se denomina dir2 .


Seguro que está (en gnuplot 4.4+):

plot for [i=1:1000] ''data''.i.''.txt'' using 1:2 title ''Flow ''.i

La variable i se puede interpretar como una variable o una cadena, por lo que podría hacer algo como

plot for [i=1:1000] ''data''.i.''.txt'' using 1:($2+i) title ''Flow ''.i

si quieres que las líneas se compensen entre sí.

Escriba la help iteration en la línea de comando gnuplot para obtener más información.

También asegúrese de ver la respuesta de @DarioP sobre el do for sintaxis; eso te da algo más cerca de un bucle for tradicional.


Tengo el script all.p

set ... ... list=system(''ls -1B *.dat'') plot for [file in list] file w l u 1:2 t file

Aquí las dos últimas filas son literales, no heurísticas. Entonces corro

$ gnuplot -p all.p

Cambie *.dat al tipo de archivo que tiene, o agregue tipos de archivos.

Siguiente paso: agrega a ~ / .bashrc esta línea

alias p=''gnuplot -p ~/./all.p''

y ponga su archivo all.p int en su directorio de inicio y listo. Puede trazar todos los archivos en cualquier directorio escribiendo p y enter.

EDITAR Cambié el comando, porque no funcionó. Anteriormente contenía la list(i)=word(system(ls -1B *.dat),i) .


Utilice lo siguiente si tiene columnas discretas para trazar en un gráfico

do for [indx in "2 3 7 8"] { column = indx + 0 plot ifile using 1:column ; }