Saltar al contenido

Trazar el tiempo en Python con Matplotlib

No dudes en divulgar nuestro espacio y códigos en tus redes, necesitamos de tu ayuda para aumentar nuestra comunidad.

Solución:

Primero debe convertir sus marcas de tiempo a Python datetime objetos (uso datetime.strptime). Entonces usa date2num para convertir las fechas al formato matplotlib.

Trazar las fechas y los valores usando plot_date:

dates = matplotlib.dates.date2num(list_of_datetimes)
matplotlib.pyplot.plot_date(dates, values)

También puede trazar la marca de tiempo, los pares de valores usando pyplot.plot (después de analizarlos desde su string representación). (Probado con matplotlib versiones 1.2.0 y 1.3.1.)

Ejemplo:

import datetime
import random
import matplotlib.pyplot as plt

# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

# plot
plt.plot(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()

plt.show()

Imagen resultante:

Gráfico de línea


Esto es lo mismo que un diagrama de dispersión:

import datetime
import random
import matplotlib.pyplot as plt

# make up some data
x = [datetime.datetime.now() + datetime.timedelta(hours=i) for i in range(12)]
y = [i+random.gauss(0,1) for i,_ in enumerate(x)]

# plot
plt.scatter(x,y)
# beautify the x-labels
plt.gcf().autofmt_xdate()

plt.show()

Produce una imagen similar a esta:

Gráfico de dispersión

7 años después y este código me ha ayudado. Sin embargo, mis tiempos aún no se mostraban correctamente.

ingrese la descripción de la imagen aquí

Usando Matplotlib 2.0.0 y tuve que agregar el siguiente código de Edición del formato de fecha de las etiquetas de marca del eje x en matplotlib por Paul H.

import matplotlib.dates as mdates
myFmt = mdates.DateFormatter('%d')
ax.xaxis.set_major_formatter(myFmt)

Cambié el formato a (%H:%M) y la hora se mostró correctamente.
ingrese la descripción de la imagen aquí

Todo gracias a la comunidad.

Reseñas y puntuaciones

Tienes la posibilidad dar difusión a este post si si solucionó tu problema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *