web-dev-qa-db-fra.com

python pandas graphiques de série temporelle, comment définir xlim et xticks en dehors de ts.plot ()?

fig = plt.figure()
ax = fig.gca()
ts.plot(ax=ax)

Je sais que je peux définir xlim à l'intérieur pandas routine de traçage: ts.plot (xlim = ...), mais comment le changer après pandas le traçage est terminé ?

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

fonctionne parfois, mais si pandas formate le xaxis en mois d'Epoch, pas en jours, cela échouera dur.

Est-il possible de savoir comment pandas a converti les dates en xaxis puis converti mon xlim de la même manière?

Merci.

18
jf328

Cela fonctionne pour moi (avec pandas 0.16.2) si je fixe les limites de l'axe x en utilisant les valeurs pd.Timestamp.

Exemple:

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)

Résultat:

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

Notez que si vous tracez plusieurs séries chronologiques sur la même figure, assurez-vous de définir xlim/ylim après la dernière commande ts.plot(), sinon pandas réinitialisera automatiquement les limites pour correspondre au contenu.

20
cilix