web-dev-qa-db-fra.com

Définition de Yaxis dans Matplotlib en utilisant Pandas

En utilisant Pandas pour tracer dans I-Python Notebook, j'ai plusieurs tracés et parce que Matplotlib décide de l'axe Y, il les définit différemment et nous devons comparer ces données en utilisant la même plage. J'ai essayé plusieurs variantes sur: (Je suppose que je vais devoir appliquer les limites à chaque tracé .. mais comme je ne peux pas en faire fonctionner un ... Du document Matplotlib, il semble que je doive définir ylim, mais je ne peux pas comprendre la syntaxe pour le faire.

df2250.plot(); plt.ylim((100000,500000)) <<<< if I insert the ; I get int not callable and  if I leave it out I get invalid syntax. anyhow, neither is right...
df2260.plot()
df5.plot()
26
dartdog

L'intrigue Pandas () renvoie les axes, vous pouvez l'utiliser pour définir le ylim dessus.

ax1 = df2250.plot()
ax2 = df2260.plot()
ax3 = df5.plot()

ax1.set_ylim(100000,500000)
ax2.set_ylim(100000,500000)
etc...

Vous pouvez également passer un axe à Pandas plot, donc le tracer dans les mêmes axes peut être fait comme:

ax1 = df2250.plot()
df2260.plot(ax=ax1)
etc...

Si vous voulez beaucoup de tracés différents, définir les axes sur le coup droit et dans une figure peut être une solution qui vous donne le plus de contrôle:

fig, axs = plt.subplots(1,3,figsize=(10,4), subplot_kw={'ylim': (100000,500000)})

df2260.plot(ax=axs[0])
df2260.plot(ax=axs[1])
etc...
33
Rutger Kassies

Je suppose que cette fonctionnalité a été ajoutée après l'acceptation de cette réponse en 2013; DataFrame.plot () expose désormais un paramètre ylim qui définit les limites de l'axe y:

df.plot(ylim=(0,200))

Voir documentation pandas pour plus de détails.

22
skeller88