matplotlib.pyplot.pcolormesh #
- matplotlib.pyplot. pcolormesh ( * args , alpha = None , norm = None , cmap = None , vmin = None , vmax = None , shading = None , antialiased = False , data = None , ** kwargs ) [source] #
Erstellen Sie ein Pseudofarbendiagramm mit einem unregelmäßigen rechteckigen Gitter.
Rufsignatur:
pcolormesh([X, Y,] C, **kwargs)
X und Y können verwendet werden, um die Ecken der Vierecke anzugeben.
Hinweis
pcolormeshist ähnlich wiepcolor. Es ist viel schneller und wird in den meisten Fällen bevorzugt. Für eine detaillierte Diskussion der Unterschiede siehe Unterschiede zwischen pcolor() und pcolormesh() .- Parameter :
- C 2D-Array-ähnlich
Die farblich abgebildeten Werte. Die Farbzuordnung wird durch cmap , norm , vmin und vmax gesteuert .
- X, Y Array-artig, optional
Die Koordinaten der Ecken von Vierecken eines pcolormesh:
(X[i+1, j], Y[i+1, j]) (X[i+1, j+1], Y[i+1, j+1]) +-----+ | | +-----+ (X[i, j], Y[i, j]) (X[i, j+1], Y[i, j+1])
Beachten Sie, dass der Spaltenindex der x-Koordinate und der Zeilenindex der y-Koordinate entspricht. Einzelheiten finden Sie im Abschnitt „ Hinweise “ weiter unten.
Wenn
shading='flat'die Dimensionen von X und Y um eins größer sein sollen als die von C und das Viereck aufgrund des Wertes bei eingefärbt wird . Wenn X , Y und C gleiche Dimensionen haben, wird eine Warnung ausgegeben und die letzte Zeile und Spalte von C werden ignoriert.C[i, j]Wenn
shading='nearest'oder'gouraud', sollten die Dimensionen von X und Y denen von C entsprechen (wenn nicht, wird ein ValueError ausgelöst). Denn'nearest'die Farbe ist auf zentriert . Für wird zwischen den Ecken des Vierecks eine glatte Interpolation durchgeführt.C[i, j](X[i, j], Y[i, j])'gouraud'Wenn X und/oder Y 1-D-Arrays oder Spaltenvektoren sind, werden sie nach Bedarf in die entsprechenden 2D-Arrays erweitert, wodurch ein rechteckiges Gitter entsteht.
- cmap str oder
Colormap, Standard:rcParams["image.cmap"](Standard:'viridis') Die Colormap-Instanz oder der registrierte Colormap-Name, der zum Zuordnen von Skalardaten zu Farben verwendet wird.
- norm str oder
Normalize, optional Die Normalisierungsmethode, die verwendet wird, um skalare Daten auf den Bereich [0, 1] zu skalieren, bevor sie mithilfe von cmap auf Farben abgebildet werden . Standardmäßig wird eine lineare Skalierung verwendet, die den niedrigsten Wert auf 0 und den höchsten auf 1 abbildet.
Falls angegeben, kann dies einer der folgenden sein:
Eine Instanz
Normalizeoder eine ihrer Unterklassen (siehe Colormap-Normalisierung ).Ein Skalenname, z. B. „linear“, „log“, „symlog“, „logit“ usw. Rufen Sie für eine Liste der verfügbaren Skalen auf
matplotlib.scale.get_scale_names(). In diesem Fall wird eine geeigneteNormalizeUnterklasse dynamisch generiert und instanziiert.
- vmin, vmax Float, optional
Wenn skalare Daten und keine explizite Norm verwendet werden, definieren vmin und vmax den Datenbereich, den die Farbtabelle abdeckt. Standardmäßig deckt die Colormap den kompletten Wertebereich der gelieferten Daten ab. Es ist ein Fehler, vmin / vmax zu verwenden, wenn eine Norminstanz angegeben ist (aber die Verwendung eines Normnamens zusammen mit vmin / vmax ist akzeptabel).
str- edgecolors {'none', None, 'face', Farbe, Farbfolge}, optional
Die Farbe der Kanten. Standardmäßig 'keine'. Mögliche Werte:
'none' oder '': Kein Rand.
Keine :
rcParams["patch.edgecolor"](Standard:'black') wird verwendet. Beachten Sie, dass aktuellrcParams["patch.force_edgecolor"](Standard:False) True sein muss, damit dies funktioniert.'face': Verwenden Sie die angrenzende Gesichtsfarbe.
Eine Farbe oder Farbfolge legt die Randfarbe fest.
Die Singularform edgecolor fungiert als Alias.
- Alphafloat , Standard: Keine
Der Alpha-Blending-Wert zwischen 0 (transparent) und 1 (deckend).
- Schattierung {'flat', 'nearest', 'gouraud', 'auto'}, optional
Der Füllstil für das Viereck; ist standardmäßig 'flach' oder
rcParams["pcolor.shading"](Standard:'auto'). Mögliche Werte:'flach': Für jedes Quad wird eine Volltonfarbe verwendet. Die Farbe des Quaders (i, j), (i+1, j), (i, j+1), (i+1, j+1) ist gegeben durch . Die Dimensionen von X und Y sollten um eins größer sein als die von C ; Wenn sie mit C identisch sind , wird eine Verfallswarnung ausgegeben und die letzte Zeile und Spalte von C werden gelöscht.
C[i, j]'am nächsten': Jeder Gitterpunkt hat eine darauf zentrierte Farbe, die sich auf halber Strecke zwischen den benachbarten Gitterzentren erstreckt. Die Dimensionen von X und Y müssen mit C übereinstimmen .
'gouraud': Jedes Quad wird Gouraud-schattiert: Die Farbe der Ecken (i', j') wird durch angegeben . Die Farbwerte des Bereichs dazwischen werden aus den Eckwerten interpoliert. Die Dimensionen von X und Y müssen mit C übereinstimmen . Wenn Gouraud-Shading verwendet wird, wird edgecolors ignoriert.
C[i', j']'auto': Wählen Sie 'flat', wenn die Dimensionen von X und Y um eins größer als C sind . Wählen Sie „am nächsten“, wenn die Abmessungen gleich sind.
Siehe pcolormesh Gitter und Schattierung für eine weitere Beschreibung.
- snap bool, Standard: False
Ob das Netz an Pixelgrenzen ausgerichtet werden soll.
- gerasterter bool, optional
Rastern Sie das pcolormesh beim Zeichnen von Vektorgrafiken. Dies kann das Rendern beschleunigen und kleinere Dateien für große Datenmengen erzeugen. Siehe auch Rasterung für Vektorgrafiken .
- Rückgaben :
- Andere Parameter :
- data indexierbares Objekt, optional
Wenn angegeben, akzeptieren alle Parameter auch einen String
s, der als interpretiert wirddata[s](es sei denn, dies löst eine Ausnahme aus).- **Kwarg
Zusätzlich sind die folgenden Argumente zulässig. Sie werden an den
QuadMeshKonstruktor weitergegeben:Eigentum
Beschreibung
eine Filterfunktion, die ein (m, n, 3) Float-Array und einen dpi-Wert akzeptiert und ein (m, n, 3)-Array und zwei Offsets von der unteren linken Ecke des Bildes zurückgibt
Array-ähnlich oder Skalar oder None
bool
antialiasedoder aa oder Antialiasingbool oder Liste von bools
(M, N) Array-ähnlich oder M*N Array-ähnlich
CapStyleoder {'hinter', 'vorstehend', 'rund'}(vmin: Float, vmax: Float)
bool
Patch oder (Pfad, Transform) oder None
Colormapoder str oder KeineFarbe oder Liste von RGBA-Tupeln
edgecoloroder ec oder edgecolorsFarbe oder Liste von Farben oder 'Gesicht'
facecoloroder facecolors oder fcFarbe oder Farbliste
Str
{'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'}
bool
JoinStyleoder {'Gehrung', 'rund', 'Fase'}Objekt
linestyleoder Bindestriche oder Linienstile oder lsstr oder Tupel oder Liste davon
linewidthoder Linienbreiten oder lwFloat oder Liste von Floats
bool
Normalizeoder str oder Keineoffset_transformoder transOffsetUnbekannt
(N, 2) oder (2,) Array-artig
None oder bool oder float oder aufrufbar
Unbekannt
bool
(Maßstab: Float, Länge: Float, Zufälligkeit: Float)
bool oder Keine
Str
Liste von str oder None
bool
schweben
Siehe auch
pcolorEine alternative Implementierung mit etwas anderen Funktionen. Für eine detaillierte Diskussion der Unterschiede siehe Unterschiede zwischen pcolor() und pcolormesh() .
imshowWenn X und Y jeweils äquidistant sind,
imshowkann das eine schnellere Alternative sein.
Anmerkungen
Maskierte Arrays
C kann ein maskiertes Array sein. Wenn maskiert ist, ist das entsprechende Viereck transparent. Das Maskieren von X und Y wird nicht unterstützt. Verwenden Sie diese Funktion, wenn Sie sie benötigen.
C[i, j]pcolorGitterausrichtung
Die Gitterausrichtung folgt der Standard-Matrix-Konvention: Ein Array C mit Form (nrows, ncolumns) wird mit der Spaltennummer als X und der Zeilennummer als Y gezeichnet .
Unterschiede zwischen pcolor() und pcolormesh()
Beide Methoden werden verwendet, um ein Pseudofarbendiagramm eines 2D-Arrays unter Verwendung von Vierecken zu erstellen.
Der Hauptunterschied liegt im erstellten Objekt und der internen Datenbehandlung: Während
pcolorein zurückgegebenPolyCollectionwird, wirdpcolormeshein zurückgegebenQuadMesh. Letzteres ist für den jeweiligen Zweck spezialisierter und damit schneller. Es sollte fast immer bevorzugt werden.Es gibt auch einen kleinen Unterschied in der Handhabung von maskierten Arrays. Sowohl
pcolorals auchpcolormeshunterstützen maskierte Arrays für C . Unterstützt jedoch nurpcolormaskierte Arrays für X und Y . Der Grund liegt in der internen Handhabung der maskierten Werte.pcolorlässt die jeweiligen Polygone aus der PolyCollection weg.pcolormeshsetzt die Gesichtsfarbe der maskierten Elemente auf transparent. Sie können den Unterschied sehen, wenn Sie Kantenfarben verwenden. Während in einem QuadMesh alle Kanten unabhängig von der Maskierung gezeichnet werden, wird die Kante zwischen zwei benachbarten maskierten Vierecken inpcolornicht gezeichnet, da die entsprechenden Polygone nicht in der PolyCollection vorhanden sind.Ein weiterer Unterschied ist die Unterstützung der Gouraud-Einschattierung
pcolormesh, die mit nicht verfügbar istpcolor.