2011-11-05 21 views
8

He estado viendo el ejemplo "scatter hist" en la galería de Matplotlib.matplotlib: cuando se usan append_axes, ¿cómo puedo indicar los ejes en los que quiero agregar el subpanel?

Por el momento los X/Y subtramas son en la parte superior ya la derecha, respectivamente, es decir:

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) 

Sin embargo, si cambio de los lugares subparcelas 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) 

es decir, movimiento el subpanel x en la parte inferior, luego append_axes agrega la subparcela y a la derecha de la subtrama x, en lugar de la derecha del diagrama de dispersión. (Cargaría la imagen pero aún no tengo una reputación lo suficientemente alta como para publicar imágenes ... grrr).

¿Cómo puedo decirle a append_axes que quiero agregar la subtrama y a la derecha de los "ejes principales" que contienen el diagrama de dispersión? Supongo que tengo que especificar el objeto axScatter de nuevo en algún lugar (aunque pensé que para eso estaba divider = make_axes_locatable(axScatter)) o supongo que el divisor ha configurado una cuadrícula en el panel de la ventana y necesito decirle a append_axes qué la celda contiene los ejes principales.

Gracias,

Alex

+2

Sé que en el caso anterior funcionará si simplemente cambio las llamadas de divider.append_axes ("arriba" ...) y de divider.append_axes ("derecha" ...), pero ¿qué pasa cuando quiero para poner subtramas en la "parte inferior" y en la "izquierda", cuando cualquiera que sea el camino que doy para llamar append_axes, las subtramas aún están unidas a los ejes incorrectos?!? – aim

+0

Intenté esto pero no encontré ninguna solución. parece un error. – bmu

Respuesta

1

El orden en el que se crea y axHistyaxHistx parece importar. Si cambia el orden de las dos últimas declaraciones, puede obtener el efecto deseado:

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) 

Esto realmente apesta como un error.

Cuestiones relacionadas