Pregunta

Mi entrada para gnuplot es como la siguiente:

1:00am  1       10
1:00am  30      12
1:01am  60      18
1:01am  90      20
1:02am  120     21
...

La primera columna contiene (lo que me gustaría ser) las etiquetas del eje X, mientras que la segunda columna contiene los valores del eje X. (En el punto real de hecho, tengo una fila por segundo, por lo que muchas filas tienen '01 a.m.' como en la columna de la etiqueta, a continuación, '1:01 am', etc).

Puedo trazar los valores que me importa usar algo como:

gnuplot> plot "my_data.txt" using 2:3 with lines

Y puedo establecer el eje X para tener una garrapata (y etiqueta) cada 30 minutos (que es de 30 * 60 = 1800 segundos), pero la etiqueta que utiliza es el valor del eje X (algo así como 3600 durante una hora) .

Lo que no puedo conseguir es que los etiquetas que aparece debajo de cada garrapata utilizar los valores de la primera columna. Ni siquiera puedo encontrar algo que parece prometedor en el manual de gnuplot. Tengo que asumir que esto es posible, sólo que no sabía dónde mirar.

Editar

Progreso, he descubierto el parámetro xticlabels() a plot. El problema es que parece trazar estas etiquetas para cada xtic (es decir, uno por segundo en mi conjunto de datos), en lugar de en los intervalos definidos por set xtics.

Editar y respuesta:

Resulta que gnuplot tiene soporte para graficar datos de series temporales. Para los curiosos:

set timefmt "%H:%M:%S"
set xdata time

Esto hace que los datos del eje X (una vez reformateadas para que coincida con el patrón) para ser interpretados como datos de series temporales. Esto se combina entonces con

set xtics 3600

formatea el eje X como he descrito.

¿Fue útil?

Solución

Lo sentimos atrapados esta tarde, pero sí era sugerir set timefmt ... ; set xdata time. Siempre pase en mi formato de hora como %s pero sólo como una práctica común.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top