matplotlib.axes.Axes.quiver#

Axes.quiver(*args, data=None, **kwargs)[Quelle]#

Plottet ein 2D-Feld von Pfeilen.

Aufruf-Signatur

quiver([X, Y], U, V, [C], /, **kwargs)

X, Y definieren die Positionen der Pfeile, U, V definieren die Richtungen der Pfeile und C setzt optional die Farbe. Die Argumente X, Y, U, V, C sind ausschließlich Positionsargumente.

Pfeillänge

Die Standardeinstellungen skalieren die Länge der Pfeile automatisch auf eine vernünftige Größe. Um dieses Verhalten zu ändern, siehe die Parameter scale und scale_units.

Pfeilform

Die Form des Pfeils wird durch width, headwidth, headlength und headaxislength bestimmt. Siehe die Anmerkungen unten.

Pfeilstil

Jeder Pfeil wird intern durch ein gefülltes Polygon mit einer standardmäßigen Kanten-Liniendicke von 0 dargestellt. Daher ist ein Pfeil eher eine gefüllte Fläche als eine Linie mit Spitze, und PolyCollection-Eigenschaften wie linewidth, edgecolor, facecolor usw. wirken entsprechend.

Parameter:
X, Y1D oder 2D array-ähnlich, optional

Die x- und y-Koordinaten der Pfeilpositionen.

Wenn nicht angegeben, werden sie als einheitliches ganzzahliges Meshgrid basierend auf den Dimensionen von U und V generiert.

Wenn X und Y 1D sind, U und V aber 2D sind, werden X, Y mit X, Y = np.meshgrid(X, Y) auf 2D erweitert. In diesem Fall müssen len(X) und len(Y) mit den Spalten- und Zeilendimensionen von U und V übereinstimmen.

U, V1D oder 2D array-ähnlich

Die x- und y-Richtungs-Komponenten der Pfeilvektoren. Die Interpretation dieser Komponenten (in Daten- oder Bildschirmkoordinaten) hängt von angles ab.

U und V müssen die gleiche Anzahl von Elementen haben, die der Anzahl der Pfeilpositionen in X, Y entspricht. U und V können maskiert sein. Positionen, die in U, V und C maskiert sind, werden nicht gezeichnet.

C1D oder 2D array-ähnlich, optional

Numerische Daten, die die Pfeilfarben durch Farbzuordnung über norm und cmap definieren.

Dies unterstützt keine expliziten Farben. Wenn Sie Farben direkt setzen möchten, verwenden Sie stattdessen color. Die Größe von C muss der Anzahl der Pfeilpositionen entsprechen.

angles{'uv', 'xy'} oder array-ähnlich, Standard: 'uv'

Methode zur Bestimmung des Winkels der Pfeile.

  • 'uv': Pfeilrichtungen basieren auf Anzeigekoordinaten; d.h. ein 45°-Winkel wird immer diagonal auf dem Bildschirm angezeigt, unabhängig vom Seitenverhältnis der Figur oder der Achsen oder den Datenbereichen der Achsen. Dies ist nützlich, wenn die Pfeile eine Größe darstellen, deren Richtung nicht an die x- und y-Datenkoordinaten gebunden ist.

    Wenn U == V ist, ist die Ausrichtung des Pfeils auf dem Plot 45 Grad gegen den Uhrzeigersinn von der horizontalen Achse (positiv nach rechts).

  • 'xy': Pfeilrichtung in Datenkoordinaten, d.h. die Pfeile zeigen von (x, y) nach (x+u, y+v). Dies ist ideal für Vektorfelder oder Gradientendiagramme, bei denen die Pfeile Bewegungen oder Gradienten in x- und y-Richtung direkt darstellen sollen.

  • Beliebige Winkel können explizit als Array von Werten in Grad angegeben werden, gegen den Uhrzeigersinn von der horizontalen Achse.

    In diesem Fall werden U, V nur zur Bestimmung der Pfeillänge verwendet.

    Zum Beispiel, angles=[30, 60, 90] orientiert die Pfeile bei 30, 60 bzw. 90 Grad, unabhängig von den U- und V-Komponenten.

Hinweis: Das Umkehren einer Datenachse kehrt die Pfeile nur mit angles='xy' entsprechend um.

pivot{'tail', 'mid', 'middle', 'tip'}, Standard: 'tail'

Der Teil des Pfeils, der an das X, Y-Gitter gebunden ist. Der Pfeil dreht sich um diesen Punkt.

'mid' ist ein Synonym für 'middle'.

scalefloat, optional

Skaliert die Länge des Pfeils umgekehrt.

Anzahl der Datenwerte, die durch eine Längeneinheit des Pfeils auf dem Plot dargestellt werden. Wenn die Daten beispielsweise Geschwindigkeit in Metern pro Sekunde (m/s) darstellen, bestimmt der Parameter scale, wie viele Meter pro Sekunde einer Pfeillängeeinheit im Verhältnis zur Breite des Plots entsprechen. Ein kleinerer scale-Parameter macht den Pfeil länger.

Standardmäßig wird ein Autoskalierungsalgorithmus verwendet, um die Pfeillänge auf eine vernünftige Größe zu skalieren, die auf der durchschnittlichen Vektorlänge und der Anzahl der Vektoren basiert.

Die Längeneinheit des Pfeils wird durch den Parameter scale_units angegeben.

scale_units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, Standard: 'width'

Die physikalische Bildheitseinheit, die für das Rendern der skalierten Pfeildaten U, V verwendet wird.

Die gerenderte Pfeillänge wird gegeben durch

Länge in x-Richtung = $frac{u}{mathrm{scale}} mathrm{scale_unit}$

Länge in y-Richtung = $frac{v}{mathrm{scale}} mathrm{scale_unit}$

Zum Beispiel, (u, v) = (0.5, 0) mit scale=10, scale_unit="width" ergibt einen horizontalen Pfeil mit einer Länge von 0,5 / 10 * "width", d. h. 0,05 mal die Breite der Achsen.

Unterstützte Werte sind

  • 'width' oder 'height': Die Pfeillänge wird relativ zur Breite oder Höhe

    der Achsen skaliert. Zum Beispiel führt scale_units='width', scale=1.0 zu einer Pfeillänge, die der Breite der Achsen entspricht.

  • 'dots': Die Pfeillänge wird in Anzeige-Punkten (Pixeln) gemessen.

  • 'inches': Pfeillängen werden basierend auf der DPI (dots per inch) der Figur skaliert.

    Dies stellt sicher, dass die Pfeile eine konsistente physikalische Größe auf der Figur in Zoll haben, unabhängig von den Datenwerten oder der Plot-Skalierung. Zum Beispiel ergibt (u, v) = (1, 0) mit scale_units='inches', scale=2 einen 0,5 Zoll langen Pfeil.

  • 'x' oder 'y': Die Pfeillänge wird relativ zu den x- oder y-Achsen-Einheiten skaliert.

    Zum Beispiel ergibt (u, v) = (0, 1) mit scale_units='x', scale=1 einen vertikalen Pfeil mit der Länge von 1 x-Achsen-Einheit.

  • 'xy': Die Pfeillänge ist gleich den 'x'- oder 'y'-Einheiten.

    Dies ist nützlich zum Erstellen von Vektoren in der x-y-Ebene, bei denen u und v die gleichen Einheiten wie x und y haben. Um Vektoren in der x-y-Ebene zu zeichnen, bei denen u und v die gleichen Einheiten wie x und y haben, verwenden Sie angles='xy', scale_units='xy', scale=1.

Hinweis: Das Setzen von scale_units ohne Setzen von scale hat keine Auswirkung, da die Skalierungseinheiten sich nur um einen konstanten Faktor unterscheiden und dieser durch die Autoskalierung wieder skaliert wird.

units{'width', 'height', 'dots', 'inches', 'x', 'y', 'xy'}, Standard: 'width'

Beeinflusst die Pfeilgröße (außer der Länge). Insbesondere die Schaftbreite width wird in Vielfachen dieser Einheit gemessen.

Unterstützte Werte sind

  • 'width', 'height': Die Breite oder Höhe der Achsen.

  • 'dots', 'inches': Pixel oder Zoll basierend auf der DPI der Figur.

  • 'x', 'y', 'xy': X, Y oder \(\sqrt{X^2 + Y^2}\) in Dateneinheiten.

Die folgende Tabelle fasst zusammen, wie diese Werte die sichtbare Pfeilgröße bei Zoom- und Größenänderungen der Figur beeinflussen.

units

zoom

Änderung der Figurengröße

'x', 'y', 'xy'

Pfeilgröße skaliert

'width', 'height'

Pfeilgröße skaliert

'dots', 'inches'

widthfloat, optional

Schaftbreite in Pfeileinheiten. Alle Kopfparameter beziehen sich auf width.

Der Standardwert hängt von der Wahl von units oben und der Anzahl der Vektoren ab; ein typischer Ausgangswert ist etwa das 0,005-fache der Breite des Plots.

headwidthfloat, Standard: 3

Kopfbreite als Vielfaches der Schaftbreite width. Siehe die Anmerkungen unten.

headlengthfloat, Standard: 5

Kopflänge als Vielfaches der Schaftbreite width. Siehe die Anmerkungen unten.

headaxislengthfloat, Standard: 4,5

Kopflänge am Schaftschnittpunkt als Vielfaches der Schaftbreite width. Siehe die Anmerkungen unten.

minshaftfloat, Standard: 1

Länge, unterhalb derer der Pfeil skaliert, in Einheiten der Kopflänge. Setzen Sie diesen Wert nicht kleiner als 1, sonst sehen kleine Pfeile furchtbar aus!

minlengthfloat, Standard: 1

Mindestlänge als Vielfaches der Schaftbreite; wenn die Pfeillänge kleiner als dies ist, zeichnen Sie stattdessen einen Punkt (Sechseck) mit diesem Durchmesser.

colorFarbe oder Liste von Farben, optional

Explizite Farbe(n) für die Pfeile. Wenn C gesetzt wurde, hat color keine Auswirkung.

Dies ist ein Synonym für den Parameter facecolor der PolyCollection.

Gibt zurück:
Pfeile
Andere Parameter:
dataindizierbares Objekt, optional

Wenn angegeben, akzeptieren alle Parameter auch eine Zeichenkette s, die als data[s] interpretiert wird, wenn s ein Schlüssel in data ist.

**kwargsPolyCollection-Eigenschaften, optional

Alle anderen Schlüsselwortargumente werden an PolyCollection weitergeleitet

Eigenschaft

Beschreibung

agg_filter

eine Filterfunktion, die ein (m, n, 3) Float-Array und einen dpi-Wert entgegennimmt und ein (m, n, 3) Array und zwei Offsets von der linken unteren Ecke des Bildes zurückgibt

alpha

Array-ähnlich oder float oder None

animated

bool

antialiased oder aa oder antialiaseds

bool oder Liste von bools

Array

Array-ähnlich oder None

capstyle

CapStyle oder {'butt', 'projecting', 'round'}

clim

(vmin: float, vmax: float)

clip_box

BboxBase oder None

clip_on

bool

clip_path

Patch oder (Path, Transform) oder None

cmap

Colormap oder str oder None

color

Farbe oder Liste von RGBA-Tupeln

edgecolor oder ec oder edgecolors

Farbe oder Liste von Farben oder 'face'

facecolor oder facecolors oder fc

Farbe oder Liste von Farben

figure

Figure oder SubFigure

gid

str

Muster (hatch)

{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}

hatch_linewidth

unknown

in_layout

bool

joinstyle

JoinStyle oder {'miter', 'round', 'bevel'}

label

object

linestyle oder dashes oder linestyles oder ls

str oder Tupel oder Liste davon

linewidth oder linewidths oder lw

float oder Liste von floats

mouseover

bool

norm

Normalize oder str oder None

offset_transform oder transOffset

Transform

offsets

(N, 2) oder (2,) Array-ähnlich

path_effects

Liste von AbstractPathEffect

paths

liste von array-like

picker

None oder bool oder float oder callable

pickradius

float

rasterized

bool

sizes

numpy.ndarray oder None

sketch_params

(scale: float, length: float, randomness: float)

snap

bool oder None

transform

Transform

url

str

urls

Liste von str oder None

verts

liste von array-like

verts_and_codes

unknown

visible

bool

zorder

float

Siehe auch

Axes.quiverkey

Fügt einem Quiver-Plot eine Legende hinzu.

Anmerkungen

Pfeilform

Der Pfeil wird als Polygon mit den unten gezeigten Knoten gezeichnet. Die Werte headwidth, headlength und headaxislength sind in Einheiten von width.

../../_images/quiver_sizes.svg

Die Standardwerte ergeben einen leicht nach hinten geneigten Pfeil. Hier einige Hinweise, wie Sie andere Kopfformen erhalten:

  • Um den Kopf zu einem Dreieck zu machen, setzen Sie headaxislength gleich headlength.

  • Um den Pfeil spitzer zu machen, reduzieren Sie headwidth oder erhöhen Sie headlength und headaxislength.

  • Um den Kopf im Verhältnis zum Schaft kleiner zu machen, skalieren Sie alle Kopfparameter proportional herunter.

  • Um den Kopf vollständig zu entfernen, setzen Sie alle head-Parameter auf 0.

  • Um einen rautenförmigen Kopf zu erhalten, setzen Sie headaxislength größer als headlength.

  • Warnung: Wenn headaxislength < (headlength / headwidth) ist, ragen die "headaxis"-Knoten (d.h. die Knoten, die den Kopf mit dem Schaft verbinden) nach vorne heraus, so dass der Pfeilkopf gebrochen aussieht.

Beispiele für die Verwendung von matplotlib.axes.Axes.quiver#

Fortgeschrittene Quiver- und Quiverkey-Funktionen

Fortgeschrittene Quiver- und Quiverkey-Funktionen

Quiver Simple Demo

Quiver Simple Demo

Trigradient Demo

Trigradient Demo

3D-Quiver-Diagramm

3D-Quiver-Diagramm

quiver(X, Y, Z, U, V, W)

quiver(X, Y, Z, U, V, W)

quiver(X, Y, U, V)

quiver(X, Y, U, V)