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:
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:
7 años después y este código me ha ayudado. Sin embargo, mis tiempos aún no se mostraban correctamente.
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.
Todo gracias a la comunidad.
Reseñas y puntuaciones
Tienes la posibilidad dar difusión a este post si si solucionó tu problema.