2017-02-09 3 views
0

In der fol. Plot, ich möchte Daten auf der X-Achse darstellen. Ich habe eine Liste von Terminen:Zeichnungsdaten auf x-Achse in Matplotlib

import arrow as ar 
date_plt = '2016-04-01' 
_frst_day = '2016-01-01' 
_last_day = '2016-12-31' 
[ar.get(date_plt) + timedelta(days=x) for x in range((ar.get(_last_day) - ar.get(_frst_day)).days + 1)] 

Wie ich das Datum auf der x-Achse dargestellt werden kann, während noch in der Lage zu sein, die Linie und die Punkte auf dem Grundstück zu ziehen (wie abgebildet)

enter image description here

+0

was ist date_plt? – eyllanesc

+0

danke @ eyllanesc, aktualisierte Frage – user308827

Antwort

1

ich glaube, du (mit etwas Code, um einen gefälschten Plot zu erzeugen) mögest:

labels=[ar.get(date_plt) + timedelta(days=x) for x in range((ar.get(_last_day)-ar.get(_frst_day)).days + 1)] 
x=np.arange(366) 
y=x*10 
plt.plot([l.datetime for l in labels],y) #convert arrow in datetime 

Beachten Sie, dass zu tun auf diese Weise der Datetime-Objekte aufgetragen werden und diese werden autmatically von MATP behandelt lotlib, zum Beispiel in der Zoom- und Abstandseinstellung (anstatt beispielsweise auf x, y zu zeichnen und Ticks zu ersetzen). zeichnen oder Ihre Daten mit Anmerkungen versehen, können Sie direkt mit der Datetime-x-Achse adressieren, wie (zB Tag 150):

plt.plot(labels[150].datetime,y[150],'o') 
plt.annotate('day 150',(labels[150].datetime,y[150])) 
Verwandte Themen