J'ai un tracé linéaire simple et j'ai besoin de déplacer les graduations de l'axe y du côté gauche (par défaut) du tracé vers le côté droit. Des idées sur la façon de faire cela?
J'ai un tracé linéaire simple et j'ai besoin de déplacer les graduations de l'axe y du côté gauche (par défaut) du tracé vers le côté droit. Des idées sur la façon de faire cela?
Réponses:
Utilisation ax.yaxis.tick_right()
par exemple:
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 réponse de joaquin fonctionne, mais a pour effet secondaire de supprimer les tiques du côté gauche des axes. Pour résoudre ce problème, faites tick_right()
un appel à set_ticks_position('both')
. Un exemple révisé:
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()
Le résultat est un tracé avec des graduations des deux côtés, mais des étiquettes de coche à droite.
Au cas où quelqu'un le demande (comme je l'ai fait), cela est également possible lorsque l'on utilise subplot2grid. Par exemple:
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()
Cela montrera ceci:
ax.tick_params(axis='y', which='both', labelleft='off', labelright='on')
. Mais ça ne bouge pas leylabel
plt.gca()
pour obtenir l'objet axes actuel. Par conséquent, vous utiliseriez:plt.gca().yaxis.set_label_position("right")