Démonstration de rotation de texte par défaut #

La façon dont Matplotlib fait la disposition du texte par défaut est contre-intuitive pour certains, donc cet exemple est conçu pour le rendre un peu plus clair.

Le texte est aligné par sa boîte englobante (la boîte rectangulaire qui entoure le rectangle d'encre). L'ordre des opérations est la rotation puis l'alignement. Fondamentalement, le texte est centré à votre emplacement (x, y), pivoté autour de ce point, puis aligné en fonction de la boîte englobante du texte pivoté.

Ainsi, si vous spécifiez un alignement en bas à gauche, le bas à gauche de la zone de délimitation du texte pivoté sera à la coordonnée (x, y) du texte.

Mais une image vaut mille mots !

rotation du texte
import matplotlib.pyplot as plt
import numpy as np


def addtext(ax, props):
    ax.text(0.5, 0.5, 'text 0', props, rotation=0)
    ax.text(1.5, 0.5, 'text 45', props, rotation=45)
    ax.text(2.5, 0.5, 'text 135', props, rotation=135)
    ax.text(3.5, 0.5, 'text 225', props, rotation=225)
    ax.text(4.5, 0.5, 'text -45', props, rotation=-45)
    for x in range(0, 5):
        ax.scatter(x + 0.5, 0.5, color='r', alpha=0.5)
    ax.set_yticks([0, .5, 1])
    ax.set_xticks(np.arange(0, 5.1, 0.5))
    ax.set_xlim(0, 5)
    ax.grid(True)


# the text bounding box
bbox = {'fc': '0.8', 'pad': 0}

fig, axs = plt.subplots(2, 1, sharex=True)

addtext(axs[0], {'ha': 'center', 'va': 'center', 'bbox': bbox})
axs[0].set_ylabel('center / center')

addtext(axs[1], {'ha': 'left', 'va': 'bottom', 'bbox': bbox})
axs[1].set_ylabel('left / bottom')

plt.show()

Galerie générée par Sphinx-Gallery