varias tipo script notacion letra graficas grafica error cientifica barras gnuplot

tipo - ¿Cómo trazar varios conjuntos de datos con títulos de un archivo en Gnuplot?



tipo de letra gnuplot (5)

Suponiendo que tengo un archivo que se parece a esto:

"p = 0.1" 1 1 3 3 4 1 "p = 0.2" 1 3 2 2 5 2

¿Es posible hacer que Gnuplot dibuje estos dos conjuntos de datos en un mismo diagrama con los títulos dados en la primera línea de cada conjunto de datos?


Con una ligera modificación de su conjunto de datos (para que los títulos se den como comentarios):

#"p = 0.1" 1 1 3 3 4 1 #"p = 0.2" 1 3 2 2 5 2

Puede trazar estos dos conjuntos de datos como líneas separadas como esta:

plot ''data.dat'' i 0 t "p = 0.1", '''' i 1 t "p = 0.2"

La opción de index ( i para abreviar) del comando plot le dice a gnuplot que trace el i th conjunto de datos. No puedo encontrar una manera de obtener gnuplot para obtener los títulos automáticamente desde el encabezado, razón por la cual los especifiqué manualmente con la opción de title ( t para abreviar).


Definitivamente es posible y su archivo de datos ya tiene el formato correcto. La funcionalidad que busca está integrada en el columnheader(N) que lee los datos en la parte superior de la columna N''th y la utiliza como título de la trama:

plot ''test.dat'' i 0 u 1:2 w lines title columnheader(1),/ ''test.dat'' i 1 u 1:2 w lines title columnheader(1)

Que se puede condensar mediante iteración:

plot for [IDX=0:1] ''test.dat'' i IDX u 1:2 w lines title columnheader(1)


Estas son las Bruce_Warrior''s y Ciro Santilli pero sin las stats intermedias:

# plot.gpi datafile = ARG1 plot for [i=0:*] datafile index i using 1:2/ with lines title columnheader(1)

El bucle for puede iterar sobre todos los conjuntos de datos en un archivo directamente. Funciona en gnuplot 5.0.5 pero no estoy seguro de cuándo adquirí esta capacidad. Está documentado en el manual 5.0 pero no en el manual 4.6 .

A menos que el color de la línea se determine por una tercera columna de entrada consumida por la linecolor variable (según la respuesta de Bruce), gnuplot asignará diferentes colores y estilos de línea automáticamente. En este caso específico también se puede omitir el using 1:2 .

$ gnuplot --version gnuplot 5.0 patchlevel 5 $ gnuplot --persist -c plot.gpi test.dat

test.dat es

"p = 0.1" 1 1 3 3 4 1 "p = 0.2" 1 3 2 2 5 2


Una solución basada en las respuestas dadas por andyras ( respuesta 1 y respuesta 2 ) para automatizar todo el proceso es usar:

datafile = ''test.dat'' stats datafile plot for [IDX=1:STATS_blocks] datafile index (IDX-1) u 1:2 w lines t/ columnheader(1) lc variable

Con esto, el script detecta automáticamente el número de bloques de datos y traza con diferentes colores y con el título correspondiente definido en la primera línea de cada bloque de datos.


gnuplot 5.1 (2016/08/28)

Esto es similar a https://.com/a/29495496/895245 pero con algunas correcciones para versiones posteriores.

Guión:

datafile = ''test.dat'' stats datafile nooutput plot for [IDX=0:STATS_blocks-1] / datafile / index IDX / using 1:2 / with lines / title columnheader(1)

Datos de prueba:

a 1, 1 2, 2 3, 3 "b" 1, 1 2, 4 3, 9 "c, c" 1, 1 2, 8 3, 27

Salida:

Esto funciona en 2016/08/28, que luego se convertirá en 5.1, pero no en 5.0.3 (Ubuntu 16.04), porque en 5.0.3 el comando stats da un error porque los encabezados de columna no son datos válidos. Y el 28/08/2016 se convirtió en solo una advertencia.

He preguntado cómo eliminar la advertencia en: https://groups.google.com/forum/#!topic/comp.graphics.apps.gnuplot/Pi4aBE2PwZ8

Usando comentarios como:

#a 1, 1 2, 2 3, 3

No funcionó en ninguna de las versiones que he probado, simplemente se ignora.