Ich benutze Pandas eingebaute .plot
Befehl, um einige lang-ish Zeitreihen zu plotten.Warum zeigen meine Jahr-Ticks mit pandas.plot immer die Jahre, die in 9 enden?
Aber meine Datums-Ticks sind immer Jahre, die standardmäßig mit 9 enden.
Warum ist das so, und wie kann ich es ändern? Jahre, die in 0 enden, würden viel schöner aussehen.
Versuchen, das Fenster der Achse mit plt.xlim('1966', '2013')
oder etwas Ähnliches einzustellen, tut auch nichts über Plots Fetisch für die Jahre, die in 9 enden (und 4, wenn Sie "hineinzoomen", wie oben gezeigt).
Es scheint auch nichts mit dem Anfang und dem Ende der Daten im Quelldatenrahmen zu tun zu haben.
hier ist ein minimal, leer, Beispiel:
dfdates = pd.date_range('01/01/1942', '01/01/2018', freq = 'MS')
dfzeros = np.zeros((len(dfdates)))
header_test = pd.MultiIndex.from_product([['zero'],['zero'], ['zero'], ['zero'], ['zero'], ['zero']], names = ['stuff1', 'stuff2', 'stuff3', 'stuff4', 'stuff5', 'stuff6'])
Big_df = pd.DataFrame(dfzeros, index = dfdates, columns = header_test)
Big_df.plot()
plt.show()
... Und dies führt in dem für mich:
Und ich kann die 9s am Ende ändern, unabhängig davon, ob Ich setze ein Fenster mit plt.xlim
oder wenn ich die Anfangs- und Endjahre, -monate oder -tage von dfdates
ändere, so ist es nicht so einfach wie "Start des Dataframes + 10 Jahre" oder ähnliches, und meine große Kopfzeile beeinflusst diese auch nicht.
Ich könnte wahrscheinlich mehr vernünftige Ticks pro Hand setzen, aber ich würde lieber wissen, warum es so schwer ist, Jahre mit 9 am Ende zu verwenden.
EDIT So, hier ist was passiert, wenn ich Grundstück, @ lanery Antwort mit: Beachten Sie die Doppel Zecken im Bereich des Grundstücks, wo ich die benutzerdefinierten Ticks (bei 1965 beginnen). Alle meine Datenrahmen beginnen bei 1940, aber viele sind leer, bis zu einem gewissen Punkt, wo ich anfange, Daten zu bekommen, abhängig von dem fraglichen Datensatz. Ich kann das mit plt.xlim('1965','2015')
abschneiden, aber ich habe es in dieser Handlung gelassen, um zu zeigen, was passiert.
Es funktioniert mit meinem Beispiel, aber mit den realen Daten, es nicht. (Oder tatsächlich, es tut, keine Fehler, und das Fenster bewegt sich, aber die 9 bleiben). –
'pandas' plotten legt mehr Wert auf automatische Formatierung Plots, so dass ich gehofft hatte, dass die Einstellung der' xlim' wäre eine einfache Möglichkeit zur Anpassung der automatisch gewählten großen Tickmarks (vor allem, nachdem es in Ihrem Beispiel funktionierte). Da dies nicht der Fall ist, müssen Sie wahrscheinlich mit einigen Anpassungen überschreiben, vielleicht hilft dieses Beispiel: http: // stackoverflow.com/questions/3486121/how-to-plot-daten-gegen-spezifische-daten-auf-der-x-achse-using-matplotlib – lanery
@JC_CL Ich aktualisierte meine Antwort zu zeigen, wie benutzerdefinierte 'xticks 'und' xticklabels '. Es kommt im Grunde nur auf 3 Zeilen, also sollte die Anwendung dieser Lösung auf Ihren Datenrahmen relativ problemlos sein (wenn Sie also noch keine Abhilfe gefunden haben). – lanery