Demonstration der standardmäßigen Textdrehung #

Die Art und Weise, wie Matplotlib das Textlayout standardmäßig durchführt, ist für einige nicht intuitiv, daher soll dieses Beispiel es ein wenig klarer machen.

Der Text wird an seinem Begrenzungsrahmen (dem rechteckigen Rahmen, der das Freihandrechteck umgibt) ausgerichtet. Die Reihenfolge der Operationen ist Drehung, dann Ausrichtung. Grundsätzlich wird der Text an Ihrer (x, y)-Position zentriert, um diesen Punkt gedreht und dann gemäß dem Begrenzungsrahmen des gedrehten Textes ausgerichtet.

Wenn Sie also die linke, untere Ausrichtung angeben, befindet sich die untere linke Ecke des Begrenzungsrahmens des gedrehten Textes an der (x, y)-Koordinate des Textes.

Aber ein Bild sagt mehr als tausend Worte!

Textdrehung
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 generiert von Sphinx-Gallery