web-dev-qa-db-fra.com

Comment imprimer l'étiquette de l'axe Y horizontalement dans un tableau matplotlib / pylab?

Je crée des graphiques très simples avec matplotlib/pylab Python. La lettre "y" qui identifie l'axe des Y est sur le côté. Vous vous attendriez à ce que l'étiquette soit plus longue, comme un mot, pour ne pas trop prolonger l’extérieur du graphique vers la gauche, mais pour une étiquette à une lettre, cela n’a aucun sens, l’étiquette doit être verticale, mes recherches sont vierges, comment puis-je imprimer le "y" horizontalement?

46
Karl D

C'est très simple. Après avoir tracé l’étiquette, vous pouvez simplement changer la rotation:

from matplotlib import pyplot as plt
plt.ion()
plt.plot([1,2,3])
h = plt.ylabel('y')
h.set_rotation(0)
plt.draw()

Sinon, vous pouvez passer la rotation en argument, c'est-à-dire

plt.ylabel('y',rotation=0)
84
Jens Munk

En développant la réponse acceptée, lorsque nous travaillons avec un objet d'axes particulier ax:

ax.set_ylabel('abc', rotation=0, fontsize=20, labelpad=20)

Notez que souvent le labelpad devra également être ajusté manuellement - sinon le "abc" s'immiscera dans le tracé.

De brèves expériences, je suppose que labelpad est le décalage entre le cadre de sélection des étiquettes de tick et le centre de l'étiquette y. (Donc, pas tout à fait le rembourrage que le nom l'indique - cela aurait été plus intuitif s'il s'agissait plutôt d'un décalage par rapport au cadre de sélection de l'étiquette.)

41
Evgeni Sergeev