Hoe tijdreeksen plotten in python

Ik heb geprobeerd een tijdreeksgrafiek uit een CSV-bestand te plotten. Ik ben erin geslaagd om het bestand te lezen en de gegevens van string naar datum te converteren met behulp van strptimeen opgeslagen in een lijst. Toen ik probeerde een testplot in matplotlib te plotten met de lijst met de datuminformatie, zette het de datum uit als een reeks stippen; dat wil zeggen, voor een datum 2012-mei-31 19:00 uur, kreeg ik een plot met een punt op 2012, 05, 19, 31, 00 op de y-as voor de waarde van x=1 enzovoort. Ik begrijp dat dit niet de juiste manier is om datumgegevens door te geven voor het plotten. Kan iemand mij vertellen hoe ik deze informatie correct kan doorgeven.


Antwoord 1, autoriteit 100%

Converteer uw x-asgegevens van tekst naar datetime.datetime, gebruik 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)

Dit is een voorbeeld van hoe u gegevens kunt plotten als u eenmaal een array van datetimes heeft:

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

Other episodes