2013-07-22 17 views
8

Utilizzando Panda per tracciare in I-Python Notebook, ho diversi grafici e poiché Matplotlib decide l'asse Y li sta impostando in modo diverso e dobbiamo confrontare i dati utilizzando lo stesso intervallo. Ho provato diverse varianti su: (presumo che avrò bisogno di applicare i limiti a ogni trama .. ma dato che non riesco a farne funzionare uno ... Dal documento Matplotlib sembra che ho bisogno di impostare ylim, ma non riesco a capire la sintassi di farlo.Impostazione di Yaxis in Matplotlib usando Pandas

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() 

risposta

23

Pandas plot() restituisce gli assi, è possibile utilizzarlo per impostare l'ylim su di esso.

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

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

è possibile passare anche un asse di Panda trama, quindi tracciare lo stesso asse può essere fatto come:

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

Se si vuole un sacco di diversi appezzamenti, che definisce gli assi su dritto e all'interno una figura potrebbe essere una soluzione che ti dà più controllo:

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... 
+0

Perfetto, Grazie mille! – dartdog

+1

Si potrebbe anche aggiungere 'sharey = True' a' plt.subplots'. Quindi i limiti y rimarranno gli stessi anche quando si esegue lo zoom in una sottotrama particolare. – esmit

+0

Infatti, buon punto! –

Problemi correlati