Ho un semplice grafico a linee e devo spostare i segni di graduazione dell'asse y dal lato sinistro (predefinito) del grafico al lato destro. Qualche idea su come farlo?
Ho un semplice grafico a linee e devo spostare i segni di graduazione dell'asse y dal lato sinistro (predefinito) del grafico al lato destro. Qualche idea su come farlo?
Risposte:
Uso ax.yaxis.tick_right()
per 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()

sharey=True.
La risposta di joaquin funziona, ma ha l'effetto collaterale di rimuovere le zecche dal lato sinistro degli assi. Per risolvere questo problema, segui tick_right()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 spunta su entrambi i lati, ma etichette di spunta a destra.

Solo nel caso qualcuno lo chieda (come ho fatto io), questo è possibile anche quando si usa 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()
Mostrerà questo:

ax.tick_params(axis='y', which='both', labelleft='off', labelright='on'). Ma non sposta ilylabel
plt.gca()per ottenere l'oggetto assi corrente. Quindi plt.gca().yaxis.set_label_position("right")