web-dev-qa-db-fra.com

étiquette d'axe y matplotlib sur le côté droit

Existe-t-il un moyen simple de placer l'étiquette de l'axe des y sur le côté droit du tracé? Je sais que cela peut être fait pour les étiquettes de tick en utilisant ax.yaxis.tick_right(), mais je voudrais savoir si cela peut être fait pour l'étiquette d'axe également.

Une idée qui m'est venue à l’esprit était d’utiliser

ax.yaxis.tick_right()
ax2 = ax.twinx()
ax2.set_ylabel('foo')

Cependant, cela n'a pas l'effet souhaité de placer toutes les étiquettes (étiquettes de graduation et d'axe) sur le côté droit, tout en préservant l'étendue de l'axe des y. En bref, je voudrais un moyen de déplacer toutes les étiquettes de l'axe y de la gauche vers la droite.

59
Thucydides411

Il semble que vous puissiez le faire avec:

ax.yaxis.set_label_position("right")
ax.yaxis.tick_right()

Voir ici pour un exemple.

90
Gerrat

Si vous souhaitez suivre l'exemple donné dans matplotlib et créer une figure avec des étiquettes des deux côtés des axes mais sans avoir à utiliser la fonction subplots(), voici ma solution:

from matplotlib import pyplot as plt
import numpy as np

ax1 = plt.plot()
t = np.arange(0.01, 10.0, 0.01)
s1 = np.exp(t)
plt.plot(t,s1,'b-')
plt.xlabel('t (s)')
plt.ylabel('exp',color='b')

ax2 = ax1.twinx()
s2 = np.sin(2*np.pi*t)
ax2.plot(t, s2, 'r.')
plt.ylabel('sin', color='r')
plt.show()

9
Gourav Mahapatra