Matplotlib Ankergestützter Richtungspfeil

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 lernen wir, wie man in Matplotlib ankergestützte Richtungsarrows erstellt. Ankergestützte Richtungsarrows sind Pfeile, die in eine bestimmte Richtung zeigen und an einem Graphen befestigt sind. Diese Pfeile sind hilfreich, um bestimmte Richtungen oder Orientierungen in einem Graphen anzuzeigen. Wir werden lernen, wie man einfache Pfeile sowie Pfeile mit hohem Kontrast und gedrehten Pfeilen erstellt.

VM-Tipps

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 Operationen 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.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken wie Matplotlib, NumPy, den Matplotlib-Schriftmanager und AnchoredDirectionArrows aus mpl_toolkits.axes_grid1 importieren. Wir werden diese Bibliotheken verwenden, um ankergestützte Richtungsarrows zu erstellen.

import matplotlib.pyplot as plt
import numpy as np

import matplotlib.font_manager as fm
from mpl_toolkits.axes_grid1.anchored_artists import AnchoredDirectionArrows

Erstellen eines Graphen

Als nächstes werden wir einen einfachen Graphen mit NumPy erstellen. Dieser Graphen wird als Hintergrund für die ankergestützten Richtungsarrows dienen.

## Fixing random state for reproducibility
np.random.seed(19680801)

fig, ax = plt.subplots()
ax.imshow(np.random.random((10, 10)))

Erstellen eines einfachen Pfeils

Jetzt werden wir einen einfachen ankergestützten Richtungspfeil mithilfe der Klasse AnchoredDirectionArrows erstellen. Dieser Pfeil wird die X- und Y-Richtungen im Graphen anzeigen.

## Simple example
simple_arrow = AnchoredDirectionArrows(ax.transAxes, 'X', 'Y')
ax.add_artist(simple_arrow)

Erstellen eines Pfeils mit hohem Kontrast

Als nächstes werden wir einen ankergestützten Richtungspfeil mit hohem Kontrast erstellen. Dieser Pfeil wird einen weißen Umriss und eine schwarze Füllung haben.

high_contrast_part_1 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'w', 'fc': 'none', 'alpha': 1,
                                         'lw': 2}
                            )
ax.add_artist(high_contrast_part_1)

high_contrast_part_2 = AnchoredDirectionArrows(
                            ax.transAxes,
                            '111', r'11$\overline{2}$',
                            loc='upper right',
                            arrow_props={'ec': 'none', 'fc': 'k'},
                            text_props={'ec': 'w', 'fc': 'k', 'lw': 0.4}
                            )
ax.add_artist(high_contrast_part_2)

Erstellen eines gedrehten Pfeils

In diesem Schritt werden wir einen gedrehten ankergestützten Richtungspfeil erstellen. Dieser Pfeil wird um 30 Grad gedreht und eine serifenhaltige Schriftart haben.

fontprops = fm.FontProperties(family='serif')

rotated_arrow = AnchoredDirectionArrows(
                    ax.transAxes,
                    '30', '120',
                    loc='center',
                    color='w',
                    angle=30,
                    fontproperties=fontprops
                    )
ax.add_artist(rotated_arrow)

Ändern der Pfeilrichtungen

In diesem Schritt werden wir drei ankergestützte Richtungspfeile erstellen, die in verschiedene Richtungen zeigen. Diese Pfeile werden unterschiedliche Längen und Seitenverhältnisse haben.

a1 = AnchoredDirectionArrows(
        ax.transAxes, 'A', 'B', loc='lower center',
        length=-0.15,
        sep_x=0.03, sep_y=0.03,
        color='r'
    )
ax.add_artist(a1)

a2 = AnchoredDirectionArrows(
        ax.transAxes, 'A', ' B', loc='lower left',
        aspect_ratio=-1,
        sep_x=0.01, sep_y=-0.02,
        color='orange'
        )
ax.add_artist(a2)


a3 = AnchoredDirectionArrows(
        ax.transAxes, ' A', 'B', loc='lower right',
        length=-0.15,
        aspect_ratio=-1,
        sep_y=-0.1, sep_x=0.04,
        color='cyan'
        )
ax.add_artist(a3)

Zeige den Graphen an

Schließlich werden wir den Graphen mit allen ankergestützten Richtungspfeilen anzeigen.

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man in Matplotlib ankergestützte Richtungspfeile erstellt. Wir haben einfache Pfeile sowie Pfeile mit hohem Kontrast und gedrehte Pfeile erstellt. Wir haben auch gelernt, wie man die Pfeilrichtungen und die Seitenverhältnisse ändert. Ankergestützte Richtungspfeile sind nützlich, um bestimmte Richtungen oder Ausrichtungen in einem Graphen anzuzeigen.