Tengo un diagrama de línea simple y necesito mover las marcas del eje y desde el lado izquierdo (predeterminado) del diagrama al lado derecho. ¿Alguna idea sobre cómo hacer esto?
Tengo un diagrama de línea simple y necesito mover las marcas del eje y desde el lado izquierdo (predeterminado) del diagrama al lado derecho. ¿Alguna idea sobre cómo hacer esto?
Respuestas:
Utilizar 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()
sharey=True
.
La respuesta de Joaquin funciona, pero tiene el efecto secundario de eliminar las marcas del lado izquierdo de los ejes. Para solucionar este problema, tick_right()
llame 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 un gráfico con marcas en ambos lados, pero etiquetas con marcas a la derecha.
Solo en caso de que alguien pregunte (como hice yo), esto también es posible cuando se 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:
ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')
. Pero no se mueve elylabel
plt.gca()
para obtener el objeto de ejes actual. Por lo tanto, usaría:plt.gca().yaxis.set_label_position("right")