2012-09-10 11 views
10

¿Puedo tener twinx y twiny juntos (es decir, algo así como twinxy)? Quiero poner un CDF en un diagrama de barras donde el eje X del diagrama de barras está en escala de registro. No puedo juntar los Ys, porque el rango del gráfico de barras y es muy grande comparando [0,1] para CDF.matplotlib usando twinx y twiny together (como twinxy)

¿Alguna idea?

Gracias,

Respuesta

18

Si entiendo su pregunta correcta, que desea trazar dos cosas en el mismo axes sin axis compartido. Es probable que haya una mejor manera de hacer esto, pero se puede apilar twinx(doc) y twiny(doc) como tal

ax # your first axes 
ax_new = ax.twinx().twiny() 

que le dará marcas de graduación en todos los lados de la trama. ax se trazará en la parte inferior e izquierda, ax_new se trazará en la parte superior y derecha.

+0

Parece ser sencillo ... No sé por qué no lo probé ... Gracias – Amir

+2

¡Gran solución, gracias! Al usar este método ('ax2 = ax1.twinx(). Twiny()'), no pude establecer y_label para el segundo eje, aunque pude establecer la x_label. Al cambiar a 'ax2 = ax1.twiny(). Twinx()' Pude agregar la etiqueta y_. Esto, sin embargo, plantea otro problema ya que no puedo desactivar las etiquetas x-tick ('ax2.tick_params (axis = 'x', which = 'both', top = 'off', bottom = 'off', labelbottom = 'off', labeltop = 'off') ') como lo había hecho antes. Este método parece romper parte de la funcionalidad de los ejes y puede tomar un tiempo para solucionarlo. – Jason

+2

@Jason Esa es una arruga graciosa en cómo se manejan las etiquetas x/y en los ejes superpuestos. Puede que necesite agarrar los ejes intermedios y trabajar en ello también. – tacaswell

Cuestiones relacionadas