matplotlib.quiver.Quiver#
- class matplotlib.quiver.Quiver(ax, *args, scale=None, headwidth=3, headlength=5, headaxislength=4.5, minshaft=1, minlength=1, units='width', scale_units=None, angles='uv', width=None, color='k', pivot='tail', **kwargs)[Quelle]#
Basen:
PolyCollectionSpezialisierte PolyCollection für Pfeile.
Die einzige API-Methode ist set_UVC(), die verwendet werden kann, um die Größe, Ausrichtung und Farbe der Pfeile zu ändern; ihre Positionen sind bei der Instanziierung der Klasse festgelegt. Möglicherweise ist diese Methode in Animationen nützlich.
Ein Großteil der Arbeit in dieser Klasse wird in der draw()-Methode erledigt, sodass so viele Informationen wie möglich über das Diagramm verfügbar sind. Bei nachfolgenden draw()-Aufrufen beschränkt sich die Neuberechnung auf Dinge, die sich möglicherweise geändert haben, sodass keine Leistungseinbußen durch die Platzierung der Berechnungen in der draw()-Methode entstehen sollten.
Der Konstruktor nimmt ein erforderliches Argument, eine Axes-Instanz, gefolgt von den Args und Kwargs, die von der folgenden Pyplot-Schnittstellendokumentation beschrieben werden
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üssenlen(X)undlen(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)mitscale=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.0zu 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)mitscale_units='inches', scale=2einen 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)mitscale_units='x', scale=1einen 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:
- Andere Parameter:
- dataindizierbares Objekt, optional
DATA_PARAMETER_PLACEHOLDER
- **kwargs
PolyCollection-Eigenschaften, optional Alle anderen Schlüsselwortargumente werden an
PolyCollectionweitergeleitetEigenschaft
Beschreibung
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
Array-ähnlich oder float oder None
bool
antialiasedoderaaoderantialiasedsbool oder Liste von bools
Array-ähnlich oder None
CapStyleoder {'butt', 'projecting', 'round'}(vmin: float, vmax: float)
BboxBaseoder Nonebool
Patch oder (Path, Transform) oder None
Colormapoder str oder NoneFarbe oder Liste von RGBA-Tupeln
edgecoloroderecoderedgecolorsfacecoloroderfacecolorsoderfcstr
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
unknown
bool
JoinStyleoder {'miter', 'round', 'bevel'}object
linestyleoderdashesoderlinestylesoderlsstr oder Tupel oder Liste davon
linewidthoderlinewidthsoderlwfloat oder Liste von floats
bool
Normalizeoder str oder None(N, 2) oder (2,) Array-ähnlich
Liste von
AbstractPathEffectliste von array-like
None oder bool oder float oder callable
float
bool
sizesnumpy.ndarrayoder None(scale: float, length: float, randomness: float)
bool oder None
str
Liste von str oder None
liste von array-like
unknown
bool
float
Siehe auch
Axes.quiverkeyFü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.
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.
- draw(renderer)[Quelle]#
Zeichnet den Künstler (und seine Kinder) mit dem gegebenen Renderer.
Dies hat keine Auswirkung, wenn der Künstler nicht sichtbar ist (
Artist.get_visiblegibt False zurück).- Parameter:
- renderer
RendererBaseUnterklasse.
- renderer
Anmerkungen
Diese Methode wird in den Künstler-Unterklassen überschrieben.
- set(*, UVC=<UNSET>, agg_filter=<UNSET>, alpha=<UNSET>, animated=<UNSET>, antialiased=<UNSET>, array=<UNSET>, capstyle=<UNSET>, clim=<UNSET>, clip_box=<UNSET>, clip_on=<UNSET>, clip_path=<UNSET>, cmap=<UNSET>, color=<UNSET>, edgecolor=<UNSET>, facecolor=<UNSET>, gid=<UNSET>, hatch=<UNSET>, hatch_linewidth=<UNSET>, in_layout=<UNSET>, joinstyle=<UNSET>, label=<UNSET>, linestyle=<UNSET>, linewidth=<UNSET>, mouseover=<UNSET>, norm=<UNSET>, offset_transform=<UNSET>, offsets=<UNSET>, path_effects=<UNSET>, paths=<UNSET>, picker=<UNSET>, pickradius=<UNSET>, rasterized=<UNSET>, sizes=<UNSET>, sketch_params=<UNSET>, snap=<UNSET>, transform=<UNSET>, url=<UNSET>, urls=<UNSET>, verts=<UNSET>, verts_and_codes=<UNSET>, visible=<UNSET>, zorder=<UNSET>)[Quelle]#
Setzt mehrere Eigenschaften auf einmal.
Unterstützte Eigenschaften sind
Eigenschaft
Beschreibung
unknown
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
Array-ähnlich oder float oder None
bool
antialiasedoderaaoderantialiasedsbool oder Liste von bools
Array-ähnlich oder None
CapStyleoder {'butt', 'projecting', 'round'}(vmin: float, vmax: float)
BboxBaseoder Nonebool
Patch oder (Path, Transform) oder None
Colormapoder str oder NoneFarbe oder Liste von RGBA-Tupeln
edgecoloroderecoderedgecolorsfacecoloroderfacecolorsoderfcstr
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
unknown
bool
JoinStyleoder {'miter', 'round', 'bevel'}object
linestyleoderdashesoderlinestylesoderlsstr oder Tupel oder Liste davon
linewidthoderlinewidthsoderlwfloat oder Liste von floats
bool
Normalizeoder str oder None(N, 2) oder (2,) Array-ähnlich
Liste von
AbstractPathEffectliste von array-like
None oder bool oder float oder callable
float
bool
sizesnumpy.ndarrayoder None(scale: float, length: float, randomness: float)
bool oder None
str
Liste von str oder None
liste von array-like
unknown
bool
float