Pandas Dataframe line-plot-Anzeige, Datum auf der x-Achse
Vergleichen Sie den folgenden code:
test = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]})
test['date'] = pd.to_datetime(test['date'])
test = test.set_index('date')
ax = test.plot()
Fügte ich DateFormatter
am Ende:
test = pd.DataFrame({'date':['20170527','20170526','20170525'],'ratio1':[1,0.98,0.97]})
test['date'] = pd.to_datetime(test['date'])
test = test.set_index('date')
ax = test.plot()
ax.xaxis.set_minor_formatter(dates.DateFormatter('%d\n\n%a')) ## Added this line
Das Problem mit der zweiten Grafik ist, dass es beginnt auf 5-24
statt 5-25
. Auch 5-25
2017 ist Donnerstag, nicht Montag. Was das Problem verursacht? Ist dieser Zeitzone bezogen? (Ich verstehe nicht, warum das Datum zahlen sind gestapelt auf der jeweils anderen entweder)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Allgemeinen die datetime-utilities von pandas und matplotlib unvereinbar sind. So versuchen, eine
matplotlib.dates
Objekt auf einer Datumsachse erstellt mit pandas wird in den meisten Fällen nicht.Ein Grund dafür ist z.B. aus gesehen die Dokumentation
Dies ist jedoch nicht der einzige Unterschied und es ist daher ratsam, nicht zu mischen, pandas und matplotlib, wenn es um die datetime-Objekte.
Gibt es aber die Möglichkeit, zu sagen, pandas nicht die Verwendung seiner eigenen datetime-format. In diesem Fall mit der
matplotlib.dates
Ticker ist möglich. Dies kann gesteuert werden über.Da pandas nicht ausgefeilten Formatierungsmöglichkeiten für Daten, kann man verwenden, matplotlib zum Grafiken und Formatierung.