matplotlib.pyplot.contour#
- matplotlib.pyplot.contour(*args, data=None, **kwargs)[Quelle]#
Plottet Konturlinien.
Aufruf-Signatur
contour([X, Y,] Z, /, [levels], **kwargs)
Die Argumente X, Y, Z sind nur positionsabhängig.
contourundcontourfzeichnen Konturlinien bzw. gefüllte Konturen. Sofern nicht anders angegeben, sind die Funktionssignaturen und Rückgabewerte für beide Versionen gleich.- Parameter:
- X, Yarray-ähnlich, optional
Die Koordinaten der Werte in Z.
X und Y müssen beide 2D mit der gleichen Form wie Z sein (z. B. erstellt über
numpy.meshgrid), oder sie müssen beide 1D sein, so dasslen(X) == Ndie Anzahl der Spalten in Z undlen(Y) == Mdie Anzahl der Zeilen in Z ist.X und Y müssen beide monoton geordnet sein.
Wenn sie nicht angegeben werden, wird angenommen, dass es sich um ganzzahlige Indizes handelt, d. h.
X = range(N),Y = range(M).- Z(M, N) array-ähnlich
Die Höhenwerte, über denen die Kontur gezeichnet wird. Die Farbzuordnung wird von cmap, norm, vmin und vmax gesteuert.
- levelsint oder array-ähnlich, optional
Bestimmt die Anzahl und Positionen der Konturlinien / Regionen.
Wenn ein int n verwendet wird, wird
MaxNLocatorverwendet, der versucht, automatisch nicht mehr als n+1 "schöne" Konturebenen zwischen dem minimalen und maximalen numerischen Wert von Z zu wählen.Wenn array-ähnlich, werden Konturlinien auf den angegebenen Ebenen gezeichnet. Die Werte müssen aufsteigend geordnet sein.
- Gibt zurück:
- Andere Parameter:
- corner_maskbool, Standard:
rcParams["contour.corner_mask"](Standard:True) Aktiviert/deaktiviert die Eckmaskierung, die nur Auswirkungen hat, wenn Z ein maskiertes Array ist. Wenn
False, wird jede Quad-Zelle, die an einen maskierten Punkt grenzt, maskiert. WennTrue, werden nur die dreieckigen Ecken der Quad-Zellen, die diesen Punkten am nächsten liegen, immer maskiert; andere dreieckige Ecken, die aus drei unmaskierten Punkten bestehen, werden wie üblich konturiert.- colorsFarbe oder Liste von Farben, optional
Die Farben der Niveaus, d. h. der Linien für
contourund der Flächen fürcontourf.Die Sequenz wird für die Ebenen in aufsteigender Reihenfolge wiederholt. Wenn die Sequenz kürzer als die Anzahl der Ebenen ist, wird sie wiederholt.
Als Abkürzung kann eine einzelne Farbe anstelle von Listen mit einem Element verwendet werden, z. B.
'red'anstelle von['red'], um alle Ebenen mit der gleichen Farbe zu versehen.Geändert in Version 3.10: Früher musste eine einzelne Farbe als Zeichenkette angegeben werden, jetzt kann jedes gültige Farbformat übergeben werden.
Standardmäßig (Wert None) wird die durch cmap angegebene Colormap verwendet.
- alphafloat, Standard: 1
Der Alpha-Mischwert, zwischen 0 (transparent) und 1 (opak).
- cmapstr oder
Colormap, Standard:rcParams["image.cmap"](Standard:'viridis') Die Colormap-Instanz oder der registrierte Colormap-Name, der verwendet wird, um Skalardaten in Farben abzubilden.
Dieser Parameter wird ignoriert, wenn colors gesetzt ist.
- normstr oder
Normalize, optional Die Normalisierungsmethode, die verwendet wird, um Skalardaten vor der Abbildung auf Farben mithilfe von cmap in den Bereich [0, 1] zu skalieren. Standardmäßig wird eine lineare Skalierung verwendet, die den niedrigsten Wert auf 0 und den höchsten auf 1 abbildet.
Wenn angegeben, kann dies eine der folgenden Optionen sein
Eine Instanz von
Normalizeoder eine ihrer Unterklassen (siehe Farbkartennormalisierung).Ein Skalennamen, d. h. einer von "linear", "log", "symlog", "logit" usw. Für eine Liste der verfügbaren Skalen rufen Sie
matplotlib.scale.get_scale_names()auf. In diesem Fall wird eine geeigneteNormalize-Unterklasse dynamisch generiert und instanziiert.
Dieser Parameter wird ignoriert, wenn colors gesetzt ist.
- vmin, vmaxfloat, optional
Wenn Skalardaten und keine explizite norm verwendet werden, definieren vmin und vmax den Datenbereich, den die Farbkarte abdeckt. Standardmäßig deckt die Farbkarte den gesamten Wertebereich der bereitgestellten Daten ab. Es ist ein Fehler, vmin/vmax zu verwenden, wenn eine norm-Instanz angegeben ist (aber die Verwendung eines
str-norm-Namens zusammen mit vmin/vmax ist akzeptabel).Wenn vmin oder vmax nicht angegeben werden, basiert die Standard-Farbskalierung auf levels.
Dieser Parameter wird ignoriert, wenn colors gesetzt ist.
- colorizer
Colorizeroder None, Standard: None Das Colorizer-Objekt, das verwendet wird, um Farbe auf Daten abzubilden. Wenn None, wird ein Colorizer-Objekt aus norm und cmap erstellt.
Dieser Parameter wird ignoriert, wenn colors gesetzt ist.
- origin{None, 'upper', 'lower', 'image'}, Standard: None
Bestimmt die Ausrichtung und genaue Position von Z, indem die Position von
Z[0, 0]angegeben wird. Dies ist nur relevant, wenn X, Y nicht angegeben sind.None:
Z[0, 0]befindet sich bei X=0, Y=0 in der unteren linken Ecke.'lower':
Z[0, 0]befindet sich bei X=0.5, Y=0.5 in der unteren linken Ecke.'upper':
Z[0, 0]befindet sich bei X=N+0.5, Y=0.5 in der oberen linken Ecke.'image': Verwendet den Wert aus
rcParams["image.origin"](Standard:'upper').
- extent(x0, x1, y0, y1), optional
Wenn origin nicht None ist, dann wird extent wie in
imshowinterpretiert: Es gibt die äußeren Pixelgrenzen an. In diesem Fall ist die Position von Z[0, 0] die Mitte des Pixels, nicht eine Ecke. Wenn origin None ist, dann ist (x0, y0) die Position von Z[0, 0] und (x1, y1) die Position von Z[-1, -1].Dieses Argument wird ignoriert, wenn X und Y im Aufruf von contour angegeben werden.
- locatorticker.Locator subclass, optional
Der Locator wird verwendet, um die Konturebenen zu bestimmen, wenn sie nicht explizit über levels angegeben werden. Standardmäßig wird
MaxNLocatorverwendet.- extend{'neither', 'both', 'min', 'max'}, Standard: 'neither'
Bestimmt die
contourf-Färbung von Werten, die außerhalb des levels-Bereichs liegen.Wenn 'neither', werden Werte außerhalb des levels-Bereichs nicht gefärbt. Wenn 'min', 'max' oder 'both', werden Werte unter, über bzw. unter und über dem levels-Bereich gefärbt.
Werte unterhalb von
min(levels)und oberhalb vonmax(levels)werden auf die Unter-/Überwerte derColormapabgebildet. Beachten Sie, dass die meisten Colormaps standardmäßig keine dedizierten Farben für diese haben, sodass die Unter- und Überwerte die Randwerte der Colormap sind. Möglicherweise möchten Sie diese Werte explizit mitColormap.set_underundColormap.set_overfestlegen.Hinweis
Ein bestehendes
QuadContourSetwird nicht benachrichtigt, wenn sich Eigenschaften seiner Colormap ändern. Daher ist ein expliziter Aufrufchanged()erforderlich, nachdem die Colormap geändert wurde. Der explizite Aufruf kann weggelassen werden, wenn demQuadContourSeteine Farbfläche zugewiesen ist, da diese internchanged()aufruft.Beispiel
x = np.arange(1, 10) y = x.reshape(-1, 1) h = x * y cs = plt.contourf(h, levels=[10, 30, 50], colors=['#808080', '#A0A0A0', '#C0C0C0'], extend='both') cs.cmap.set_over('red') cs.cmap.set_under('blue') cs.changed()
- xunits, yunitsregistrierte Einheiten, optional
Überschreiben Sie Achseneinheiten, indem Sie eine Instanz einer
matplotlib.units.ConversionInterfaceangeben.- antialiasedbool, optional
Aktiviert Antialiasing und überschreibt die Standardwerte. Für gefüllte Konturen ist der Standardwert False. Für Linienkonturen wird er aus
rcParams["lines.antialiased"]übernommen (Standard:True).- nchunkint >= 0, optional
Wenn 0, keine Unterteilung der Domäne. Geben Sie eine positive Ganzzahl an, um die Domäne in Unterdomänen von nchunk mal nchunk Quads zu unterteilen. Chunking reduziert die maximale Länge der vom Konturierungsalgorithmus erzeugten Polygone, was die an das Backend übergebene Rendering-Last reduziert und etwas weniger RAM benötigt. Es kann jedoch je nach Backend, dem antialiased-Flag und dem Wert von alpha zu Rendering-Artefakten an Chunk-Grenzen führen.
- linewidthsfloat oder array-ähnlich, Standard:
rcParams["contour.linewidth"](Standard:None) Gilt nur für
contour.Die Linienbreite der Konturlinien.
Wenn es eine Zahl ist, werden alle Ebenen mit dieser Linienbreite gezeichnet.
Wenn es eine Sequenz ist, werden die Ebenen in aufsteigender Reihenfolge mit den Linienbreiten in der angegebenen Reihenfolge gezeichnet.
Wenn None, wird auf
rcParams["lines.linewidth"](Standard:1.5) zurückgegriffen.- linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, optional
Gilt nur für
contour.Wenn linestyles None ist, ist der Standardwert 'solid', es sei denn, die Linien sind monochrom. In diesem Fall erhalten negative Konturen stattdessen ihren Linienstil vom Argument negative_linestyles.
linestyles kann auch ein iterierbares Objekt der obigen Zeichenketten sein, das eine Reihe von Linienstilen angibt, die verwendet werden sollen. Wenn dieses iterierbare Objekt kürzer ist als die Anzahl der Konturebenen, wird es nach Bedarf wiederholt.
- negative_linestyles{None, 'solid', 'dashed', 'dashdot', 'dotted'}, optional
Gilt nur für
contour.Wenn linestyles None ist und die Linien monochrom sind, gibt dieses Argument den Linienstil für negative Konturen an.
Wenn negative_linestyles None ist, wird der Standardwert aus
rcParams["contour.negative_linestyle"](Standard:'dashed') übernommen.negative_linestyles kann auch ein iterierbares Objekt der obigen Zeichenketten sein, das eine Reihe von Linienstilen angibt, die verwendet werden sollen. Wenn dieses iterierbare Objekt kürzer ist als die Anzahl der Konturebenen, wird es nach Bedarf wiederholt.
- hatcheslist[str], optional
Gilt nur für
contourf.Eine Liste von Kreuzschraffurmuster, die auf den gefüllten Flächen verwendet werden. Wenn None, wird keine Schraffur zur Kontur hinzugefügt.
- algorithm{'mpl2005', 'mpl2014', 'serial', 'threaded'}, optional
Welcher Konturierungsalgorithmus zur Berechnung der Konturlinien und Polygone verwendet werden soll. Die Algorithmen sind in ContourPy implementiert, siehe die ContourPy-Dokumentation für weitere Informationen.
Der Standardwert wird aus
rcParams["contour.algorithm"]übernommen (Standard:'mpl2014').- clip_path
PatchoderPathoderTransformedPath Setzt den Clipping-Pfad. Siehe
set_clip_path.Hinzugefügt in Version 3.8.
- dataindizierbares Objekt, optional
Wenn angegeben, akzeptieren alle Parameter auch eine Zeichenkette
s, die alsdata[s]interpretiert wird, wennsein Schlüssel indataist.
- corner_maskbool, Standard:
Anmerkungen
Hinweis
Dies ist die pyplot-Wrapperfunktion für
axes.Axes.contour.contourfunterscheidet sich von der MATLAB-Version darin, dass es die Polygonkanten nicht zeichnet. Um Kanten zu zeichnen, fügen Sie Linienkonturen mit Aufrufen voncontourhinzu.contourffüllt Intervalle, die oben geschlossen sind; das heißt, für Grenzen z1 und z2 ist die gefüllte Regionz1 < Z <= z2
mit Ausnahme des untersten Intervalls, das beidseitig geschlossen ist (d. h. es enthält den niedrigsten Wert).
contourundcontourfverwenden einen Marching Squares-Algorithmus, um Konturlagen zu berechnen. Weitere Informationen finden Sie in der ContourPy-Dokumentation.