2011-11-05 3 views
8

Ho visto l'esempio "scatter hist" nella galleria Matplotlib.matplotlib: quando si usano append_axes, come posso indicare gli assi a cui voglio aggiungere il sottopannello?

Al momento i x/sottotrame y sono in alto ea destra rispettivamente, ossia:

divider = make_axes_locatable(axScatter) 
axHistx = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter) 
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) 

Tuttavia, se cambio le posizioni sottotrama a:

divider = make_axes_locatable(axScatter) 
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter) 
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) 

cioè mossa il sottopannello x verso il basso, quindi append_axes aggiunge la sottotrama y alla destra della sottotrama x, piuttosto che a destra del grafico a dispersione. (Vorrei caricare l'immagine ma non ho ancora abbastanza reputazione per postare immagini ... grrr)!

Come posso dire append_axes che voglio aggiungere la sottotrama y alla destra degli "assi principali" contenenti il ​​grafico a dispersione? Sto indovinando che ho bisogno di specificare l'oggetto axScatter di nuovo da qualche parte (anche se pensavo che fosse quello che era divider = make_axes_locatable(axScatter) ?!) o immagino che il divisore abbia impostato una griglia nel pannello della finestra e devo dire ad append_axes che la cella contiene gli assi principali.

Grazie,

Alex

+2

So che nel caso di cui sopra funzionerà se cambio semplicemente le chiamate divider.append_axes ("top" ...) e divider.append_axes ("right" ...), ma che dire quando voglio per mettere sottoquotazioni sul "fondo" e sulla "sinistra", quando chiamiamo append_axes, le trame secondarie sono ancora attaccate agli assi sbagliati?!? – aim

+0

Ho provato questo ma non ho trovato soluzione. sembra un insetto – bmu

risposta

1

L'ordine in cui si crea e axHistyaxHistx sembra avere importanza. Se cambi l'ordine delle ultime due dichiarazioni, puoi ottenere l'effetto desiderato:

divider = make_axes_locatable(axScatter) 
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter) 
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter) 

Questo sicuramente puzza come un insetto.