2011-08-09 15 views
10

quiero dibujar una parcela con matplotlib con el eje en ambos lados de la trama, similar a esta trama (el color es irrelevante para esta pregunta):En matplotlib, ¿cómo se muestra un eje en ambos lados de la figura?

plot

¿Cómo se puede hacer esto con matplotlib?

Nota: al contrario de lo que se muestra en el gráfico de ejemplo, quiero que los dos ejes sean exactamente iguales y quiero mostrar solo un gráfico. Agregar los dos ejes es solo para facilitar la lectura del gráfico.

Respuesta

8

Hay un par de ejemplos relevantes en la documentación en línea:

+1

¿Hay una función más especializada en el caso de que los dos ejes sean exactamente iguales? –

+0

El ejemplo Dual Fahrenheit y Celcius que él le dio es probablemente la mejor manera de hacerlo. Donde en vez de pasar los límites a una función de conversión, simplemente los mantendría igual. Cámbielo a ax2.set_ylim (y1, y2), creo que debería funcionar. – daveydave400

+1

@ daveydave400: ¡seguro! Solo quería asegurarme de no perderme una solución más simple :) –

35

Puede utilizar tick_params():

bar(range(10), range(10)) 
tick_params(labeltop=True, labelright=True) 

Crea esto i mago:

Bar plot with both x and y axis labeled the same

0

que he hecho esto con anterioridad lo siguiente:

# Create figure and initial axis  
fig, ax0 = plt.subplots() 
# Create a duplicate of the original xaxis, giving you an additional axis object 
ax1 = ax.twinx() 
# Set the limits of the new axis from the original axis limits 
ax1.set_ylim(ax0.get_ylim()) 

Esto duplicará exactamente el eje y originales.

Cuestiones relacionadas