2012-04-27 8 views

risposta

127

Usa ax.yaxis.tick_right()

ad esempio:

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

Grande risposta, si ottiene un +1, ti darei un altro +1 per la foto, ma io sono limitato a solo 1. – lukecampbell

+8

cosa voglio spostare anche la ylabel a destra? – Brian

+0

interessante che questo fa sì che i nomi delle zecche ritornino anche se dovrebbero essere soppressi da sharey = True – endolith

72

Per le etichette di destra usare ax.yaxis.set_label_position("right"), vale a dire: lavori risposta

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

di Joaquin, ma ha l'effetto collaterale di rimuovendo le zecche dalla l lato sinistro degli assi. Per risolvere questo problema, follow-up tick_right() con una chiamata a set_ticks_position('both'). Un esempio rivisto:

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

Il risultato è un grafico con segni di graduazione su entrambi i lati, ma selezionare le etichette sulla destra.

enter image description here

9

Basta è caso in cui qualcuno chiede (come ho fatto io), anche questo è possibile quando si utilizza subplot2grid. Per esempio:

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

vi mostrerà questo:

enter image description here

+2

Funziona con 'ax.tick_params (axis = 'y', che = 'both', labelleft = 'off', labelright = 'on')' pure. Ma non sposta il 'ylabel' – Eric

+0

C'è un modo per spostare l'etichetta anche con un' plt.command'? – Ger

Problemi correlati