2014-12-11 10 views
9

Ich weiß, ich kann Xlim in Pandas Plot Routine setzen: ts.plot (xlim = ...), aber wie man es ändert nach Pandas Plotten ist getan?python pandas timeseries plots, wie xlim und xticks außerhalb ts.plot()?

ax.set_xlim((t0.toordinal(), t1.toordinal()) 

funktioniert manchmal, aber wenn Pandas die x-Achse als Monate von Epoche formatiert, nicht Tage, wird dies schwer ausfallen.

Gibt es überhaupt zu wissen, wie Pandas die Daten in Xaxis umgewandelt hat und dann meine Xlim in der gleichen Weise konvertieren?

Danke.

Antwort

9

Es funktioniert für mich (mit Pandas 0.16.2), wenn ich die X-Achsengrenzen unter Verwendung pd.Timestamp Werte einstelle.

Beispiel:

import pandas as pd 

# Create a random time series with values over 100 days 
# starting from 1st March. 
N = 100 
dates = pd.date_range(start='2015-03-01', periods=N, freq='D') 
ts = pd.DataFrame({'date': dates, 
        'values': np.random.randn(N)}).set_index('date') 

# Create the plot and adjust x/y limits. The new x-axis 
# ranges from mid-February till 1st July. 
ax = ts.plot() 
ax.set_xlim(pd.Timestamp('2015-02-15'), pd.Timestamp('2015-07-01')) 
ax.set_ylim(-5, 5) 

Ergebnis:

Plot of time series with x-axis limits manually adjusted.

Beachten Sie, dass, wenn Sie mehrere Zeitreihen in der gleichen Figur zeichnen dann sicherstellen, dass die letzte ts.plot() einstellen Xlim/ylim nach Befehl, ansonsten setzen Pandas die Grenzen automatisch zurück, um den Inhalt zu entsprechen.

Verwandte Themen