es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Matplotlib: ¿Cómo mostrar valores completos de fecha y hora en el eje x?

Estoy intentando crear un gráfico con el eje x como datos por hora (paso = 1 hora). Aunque he definido los datos x como una matriz con datos por hora, he obtenido valores x con 00:00 (ver captura de pantalla).

import pandas as pd
import matplotlib.mdates as mdates
range_hour = pd.date_range(start='2021-01-01', periods=24, freq='H')
xdata_hour = range_hour.hour.values
h_fmt = mdates.DateFormatter('%H:%M')
plot(xdata_hour, ydata)
ax.xaxis.set_major_formatter(h_fmt)

Por lo tanto, mis preguntas son:

1) ¿Cómo puedo solucionar este problema de nulos?

2) ¿Cómo puedo obtener intervalos de una hora? Los valores x deberían representar las horas de un día [00:00, …, 23:00].

Imagen: Captura de pantalla

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    1) El problema es que los datos de x están definidos como un array con valores horarios en lugar de objetos de fecha y hora. Para solucionar esto, puedes crear un nuevo array con objetos de fecha y hora que representen cada hora del día utilizando la función pd.date_range como se muestra en el código anterior.

    2) Para obtener pasos de una hora en el eje x, puedes establecer los ticks de x utilizando el método ax.set_xticks y especificar la frecuencia deseada como argumento. Por ejemplo, para tener pasos de una hora, puedes establecer los ticks de esta manera:

    ax.set_xticks(pd.date_range(start='2021-01-01', end='2021-01-02', freq='H'))
    

    Esto creará un rango de objetos de fecha y hora que representan cada hora de un día y los establecerá como los ticks del eje x para el gráfico.

Comments are closed.