Dimostrazione di rotazione del testo predefinita #

Il modo in cui Matplotlib esegue il layout del testo per impostazione predefinita è controintuitivo per alcuni, quindi questo esempio è progettato per renderlo un po' più chiaro.

Il testo è allineato dal riquadro di delimitazione (il riquadro rettangolare che circonda il rettangolo dell'inchiostro). L'ordine delle operazioni è la rotazione quindi l'allineamento. Fondamentalmente, il testo è centrato nella tua posizione (x, y), ruotato attorno a questo punto e quindi allineato in base al riquadro di delimitazione del testo ruotato.

Quindi, se specifichi l'allineamento in basso a sinistra, la parte inferiore sinistra del riquadro di delimitazione del testo ruotato sarà alla coordinata (x, y) del testo.

Ma un'immagine vale più di mille parole!

rotazione del testo
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()

Galleria generata da Sphinx-Gallery