Jason Strimpel
Tengo un gráfico de líneas simple y necesito mover las marcas del eje y desde el lado izquierdo (predeterminado) del gráfico hacia el lado derecho. ¿Alguna idea sobre cómo hacer esto?
Usar ax.yaxis.tick_right()
Por ejemplo:
from matplotlib import pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
plt.plot([2,3,4,5])
plt.show()
-
Gran respuesta, obtienes un +1, te daría otro +1 por la imagen, pero estoy limitado a solo 1.
– lucas campbell
27 de abril de 2012 a las 17:23
-
Es interesante que esto haga que los nombres de los ticks regresen aunque deberían ser suprimidos por sharey=True
– endolito
17 dic 2017 a las 20:19
-
¿Y si quiero las marcas y las etiquetas tanto a la izquierda como a la derecha?
– AstroFloyd
16 de febrero de 2018 a las 16:59
-
No resolví por qué, pero esto se rompe si tienes tramas secundarias con
sharey=True
.– Steven C. Howell
3 mayo 2018 a las 18:41
-
¿Cuál es el comando para que las marcas aparezcan a la izquierda? y ¿la derecha? ¡Gracias!
– tommy.carstensen
2 de agosto de 2018 a las 5:57
Dietrich
Para usar las etiquetas correctas ax.yaxis.set_label_position("right")
es decir:
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_label_position("right")
plt.plot([2,3,4,5])
ax.set_xlabel("$x$ /mm")
ax.set_ylabel("$y$ /mm")
plt.show()
la respuesta de joaquín funciona, pero tiene el efecto secundario de eliminar las garrapatas del lado izquierdo de los ejes. Para arreglar esto, haz un seguimiento tick_right()
con una llamada a set_ticks_position('both')
. Un ejemplo revisado:
from matplotlib import pyplot as plt
f = plt.figure()
ax = f.add_subplot(111)
ax.yaxis.tick_right()
ax.yaxis.set_ticks_position('both')
plt.plot([2,3,4,5])
plt.show()
El resultado es una gráfica con marcas en ambos lados, pero etiquetas de marcas a la derecha.
Solo en caso de que alguien pregunte (como lo hice yo), esto también es posible cuando uno usa subplot2grid. Por ejemplo:
import matplotlib.pyplot as plt
plt.subplot2grid((3,2), (0,1), rowspan=3)
plt.plot([2,3,4,5])
plt.tick_params(axis="y", which="both", labelleft="off", labelright="on")
plt.show()
Mostrará esto:
Usando subtramas y si está compartiendo el eje y (es decir, sharey=True
), antes de crear la trama, intente:
plt.rcParams['ytick.right'] = plt.rcParams['ytick.labelright'] = True
plt.rcParams['ytick.left'] = plt.rcParams['ytick.labelleft'] = False
-
Funciona perfectamente en 2022 con la versión actual de matplotlib.
– espiral cuadrada
27 de noviembre de 2022 a las 20:49
-
Funciona perfectamente en 2022 con la versión actual de matplotlib.
– espiral cuadrada
27 de noviembre de 2022 a las 20:49