Demostración de rotación de texto predeterminada #

La forma en que Matplotlib hace el diseño del texto de forma predeterminada es contraria a la intuición para algunos, por lo que este ejemplo está diseñado para que quede un poco más claro.

El texto se alinea por su cuadro delimitador (el cuadro rectangular que rodea el rectángulo de tinta). El orden de las operaciones es rotación y luego alineación. Básicamente, el texto se centra en su ubicación (x, y), gira alrededor de este punto y luego se alinea de acuerdo con el cuadro delimitador del texto girado.

Por lo tanto, si especifica la alineación inferior izquierda, la parte inferior izquierda del cuadro delimitador del texto rotado estará en la coordenada (x, y) del texto.

¡Pero una imagen vale más que mil palabras!

rotación de texto
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()

Galería generada por Sphinx-Gallery