197 votes

traçage de temps en python avec matplotlib

J'ai un tableau de l'horodatage dans le format HH:MM:SS.hum hum) et un autre tableau de nombres flottants, chacun correspondant à une valeur du timestamp tableau.

Puis-je tracé de temps sur l'axe des x et les nombres sur l'axe des y à l'aide de matplotlib? J'essayais de mais de toute façon c'est seulement en acceptant des tableaux de flotteurs.Comment puis-je obtenir à la parcelle du temps? Dois-je modifier le format de toute façon?

212voto

codeape Points 38576

Vous devez d'abord convertir votre horodatages pour python datetime objets (utilisation datetime.strptime). Ensuite, utilisez date2num pour convertir les dates de matplotlib format.

Tracer les dates et les valeurs à l'aide d' plot_date:

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

102voto

moooeeeep Points 10167

Vous pouvez également tracer le timestamp, des paires de valeurs à l'aide de pyplot.parcelle (après l'analyse de leur représentation sous forme de chaîne). (Testé avec matplotlib version 1.2.0.)

Exemple:

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()

résultat en Image:

Figure 1

14voto

Jouni K. Seppänen Points 15129

Regardez quelques exemples:

D'en faire seulement une heure de spectacle et pas de dates, de passer un adapté strftime-comme spec DateFormatter.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X