Matplotlib Pfeilreferenzgrafik erstellen

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 Tutorial führen wir Sie durch den Prozess der Erstellung eines Pfeilstyles-Referenzdiagramms mit Matplotlib in Python. Das Diagramm wird die verschiedenen Pfeilstile anzeigen, die in ~.Axes.annotate zur Verfügung stehen.

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

Importiere erforderliche Bibliotheken

Importiere die erforderlichen Bibliotheken, um das Pfeilstyles-Referenzdiagramm zu erstellen.

import inspect
import itertools
import re

import matplotlib.pyplot as plt

import matplotlib.patches as mpatches

Holen Sie sich die Pfeilstile

Verwenden Sie mpatches.ArrowStyle.get_styles(), um alle verfügbaren Pfeilstile in ~.Axes.annotate abzurufen.

styles = mpatches.ArrowStyle.get_styles()

Einrichten der Abbildung

Richten Sie die Abbildung mit plt.figure() und add_gridspec() ein. Die Abbildung wird ein Gitter mit 2 Spalten und n Zeilen haben, wobei n die Anzahl der Pfeilstile ist. In jeder Zelle des Gitters wird ein Pfeilstil und seine Standardparameter enthalten.

ncol = 2
nrow = (len(styles) + 1) // ncol
axs = (plt.figure(figsize=(4 * ncol, 1 + nrow))
     .add_gridspec(1 + nrow, ncol,
                    wspace=.7, left=.1, right=.9, bottom=0, top=1).subplots())
for ax in axs.flat:
    ax.set_axis_off()
for ax in axs[0, :]:
    ax.text(0,.5, "arrowstyle",
            transform=ax.transAxes, size="large", color="tab:blue",
            horizontalalignment="center", verticalalignment="center")
    ax.text(.35,.5, "default parameters",
            transform=ax.transAxes,
            horizontalalignment="left", verticalalignment="center")

Zeichnen der Pfeilstile

Zeichnen Sie jeden Pfeilstil in einer Zelle des Gitters zusammen mit seinen Standardparametern. Verwenden Sie ax.annotate(), um den Pfeilstilnamen und seine Standardparameter zur Zelle hinzuzufügen.

for ax, (stylename, stylecls) in zip(axs[1:, :].T.flat, styles.items()):
    l, = ax.plot(.25,.5, "ok", transform=ax.transAxes)
    ax.annotate(stylename, (.25,.5), (-0.1,.5),
                xycoords="axes fraction", textcoords="axes fraction",
                size="large", color="tab:blue",
                horizontalalignment="center", verticalalignment="center",
                arrowprops=dict(
                    arrowstyle=stylename, connectionstyle="arc3,rad=-0.05",
                    color="k", shrinkA=5, shrinkB=5, patchB=l,
                ),
                bbox=dict(boxstyle="square", fc="w"))
    ## wrap at every nth comma (n = 1 or 2, depending on text length)
    s = str(inspect.signature(stylecls))[1:-1]
    n = 2 if s.count(',') > 3 else 1
    ax.text(.35,.5,
            re.sub(', ', lambda m, c=itertools.count(1): m.group()
                   if next(c) % n else '\n', s),
            transform=ax.transAxes,
            horizontalalignment="left", verticalalignment="center")

Zeige das Diagramm an

Zeige das Pfeilstyles-Referenzdiagramm mit plt.show() an.

plt.show()

Zusammenfassung

In diesem Tutorial haben Sie gelernt, wie Sie eine Pfeilstyles-Referenzgrafik mit Matplotlib in Python erstellen. Sie haben mpatches.ArrowStyle.get_styles() verwendet, um alle verfügbaren Pfeilstyles in ~.Axes.annotate abzurufen, eine Abbildung mit plt.figure() und add_gridspec() eingerichtet, jeden Pfeilstyle in einer Zelle des Gitters geplottet und die Grafik mit plt.show() angezeigt.