2012-04-27 26 views

Respuesta

127

Uso 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() 

enter image description here

+0

Gran respuesta, se obtiene un 1, te daría otro 1 para la imagen, pero estoy limitado a solamente 1. – lukecampbell

+8

¿qué también quiero mover la etiqueta y a la derecha? – Brian

+0

interesante que esto hace que los nombres de los ticks vuelvan aunque sean suprimidos por sharey = True – endolith

72

Para las etiquetas correctas utilizar ax.yaxis.set_label_position("right"), es decir: las obras respuesta

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() 
38

de Joaquín, pero tiene el efecto secundario de eliminando garrapatas del l Por el lado de los ejes. Para solucionar esto, siga tick_right() con una llamada al 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 trazado con marcas en ambos lados, pero marque las etiquetas a la derecha.

enter image description here

9

Sólo es por si alguien pide (como yo), esto también es posible cuando se utiliza 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() 

se mostrará lo siguiente:

enter image description here

+2

Esto funciona con 'ax.tick_params (axis = 'y', which = 'both', labelleft = 'off', labelright = 'on')' también. Pero no mueve el 'ylabel' – Eric

+0

¿Hay alguna manera de mover la etiqueta también con' plt.command'? – Ger

Cuestiones relacionadas