Text in Matplotlib-Graphen rotieren

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab wird gezeigt, wie man Textobjekte in Matplotlib relativ zu einer Linie oder einem Objekt in einem Graphen statt relativ zum Bildschirmkoordinatensystem rotieren kann. Diese Technik kann nützlich sein, wenn Sie Text in Bezug auf etwas Spezifisches im Graphen rotieren möchten.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Ein diagonale Linie zeichnen

Zunächst werden wir eine diagonale Linie im 45-Grad-Winkel mit der plot()-Funktion von Matplotlib zeichnen.

fig, ax = plt.subplots()

## Zeichne diagonale Linie (45 Grad)
h = ax.plot(range(0, 10), range(0, 10))

Die Grenzen des Graphen anpassen

Als nächstes werden wir die Grenzen des Graphen so anpassen, dass die diagonale Linie nicht mehr im 45-Grad-Winkel auf dem Bildschirm erscheint. Dies wird ein Szenario schaffen, in dem wir Text relativ zur Linie statt relativ zum Bildschirmkoordinatensystem rotieren müssen.

## setze die Grenzen so, dass es auf dem Bildschirm nicht mehr wie 45 Grad aussieht
ax.set_xlim([-10, 20])

Definiere Textpositionen und Rotationswinkel

Wir werden nun die Positionen definieren, an denen wir Text auf der Figur plottieren möchten, sowie den Rotationswinkel, den wir verwenden möchten.

## Positionen, an denen Text geplottet werden soll
l1 = np.array((1, 1))
l2 = np.array((5, 5))

## Rotationswinkel
angle = 45

Text ohne korrekte Rotation plotten

Wir werden nun Text an den angegebenen Positionen plotten, ohne die Rotation der Linie zu berücksichtigen. Dies wird dazu führen, dass der Text im 45-Grad-Winkel rotiert wird, was nicht das gewünschte Ergebnis ist.

## Plot text
th1 = ax.text(*l1, 'text not rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor')

Text mit korrekter Rotation plotten

Schließlich werden wir Text an den angegebenen Positionen plotten, wobei die Rotation der Linie berücksichtigt wird. Dies wird dazu führen, dass der Text im richtigen Winkel relativ zur Linie rotiert.

## Plot text
th2 = ax.text(*l2, 'text rotated correctly', fontsize=16,
              rotation=angle, rotation_mode='anchor',
              transform_rotates_text=True)

Zeige die Figur an

Wir werden die Figur anzeigen, um den Unterschied zwischen den beiden Gruppen von geplottetem Text zu sehen.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Textobjekte in Matplotlib relativ zu einer Linie oder einem Objekt auf einem Graphen rotieren kann. Indem wir das Parameter transform_rotates_text verwenden, konnten wir gewährleisten, dass der Text im richtigen Winkel in Bezug auf die Linie, statt auf das Bildschirm-Koordinatensystem, rotiert wird.