web-dev-qa-db-fra.com

Comment tracer une série chronologique dans python

J'ai essayé de tracer un graphique de série chronologique à partir d'un fichier CSV. J'ai réussi à lire le fichier et à convertir les données de chaîne en date à l'aide de strptime et les stocker dans une liste. Lorsque j'ai essayé de tracer un tracé de test dans matplotlib avec la liste contenant les informations de date, il a tracé la date sous forme d'une série de points; c’est-à-dire que pour une date du 31 mai 2012 à 19 h 00, j’ai reçu un tracé avec un point à 2012, 05, 19, 31, 00 sur l’axe des y pour la valeur de x = 1, etc. Je comprends que ce n’est pas la bonne façon de transmettre les informations relatives à la date pour le traçage. Quelqu'un peut-il me dire comment transmettre cette information correctement.

41
Mohanasundar

Convertissez vos données d’axe x du texte en datetime.datetime , utilisez datetime.strptime :

>>> from datetime import datetime
>>> datetime.strptime("2012-may-31 19:00", "%Y-%b-%d %H:%M")
 datetime.datetime(2012, 5, 31, 19, 0)

Voici un exemple de tracé de données une fois que vous avez un tableau de dates-heures:

import matplotlib.pyplot as plt
import datetime
import numpy as np

x = np.array([datetime.datetime(2013, 9, 28, i, 0) for i in range(24)])
y = np.random.randint(100, size=x.shape)

plt.plot(x,y)
plt.show()

enter image description here

94
jabaldonedo