Manuelle Konturen#

Beispiel für die Anzeige eigener Konturlinien und Polygone mit ContourSet.

import matplotlib.pyplot as plt

import matplotlib.cm as cm
from matplotlib.contour import ContourSet
from matplotlib.path import Path

Konturlinien für jedes Level sind eine Liste/ein Tupel von Polygonen.

lines0 = [[[0, 0], [0, 4]]]
lines1 = [[[2, 0], [1, 2], [1, 3]]]
lines2 = [[[3, 0], [3, 2]], [[3, 3], [3, 4]]]  # Note two lines.

Gefüllte Konturen zwischen zwei Levels sind ebenfalls eine Liste/ein Tupel von Polygonen. Punkte können im oder gegen den Uhrzeigersinn geordnet sein.

filled01 = [[[0, 0], [0, 4], [1, 3], [1, 2], [2, 0]]]
filled12 = [[[2, 0], [3, 0], [3, 2], [1, 3], [1, 2]],   # Note two polygons.
            [[1, 4], [3, 4], [3, 3]]]
fig, ax = plt.subplots()

# Filled contours using filled=True.
cs = ContourSet(ax, [0, 1, 2], [filled01, filled12], filled=True, cmap=cm.bone)
cbar = fig.colorbar(cs)

# Contour lines (non-filled).
lines = ContourSet(
    ax, [0, 1, 2], [lines0, lines1, lines2], cmap=cm.cool, linewidths=3)
cbar.add_lines(lines)

ax.set(xlim=(-0.5, 3.5), ylim=(-0.5, 4.5),
       title='User-specified contours')
User-specified contours

Mehrere gefüllte Konturlinien können in einer einzigen Liste von Polygonvertices zusammen mit einer Liste von Vertexarten (Code-Typen) angegeben werden, wie in der Path-Klasse beschrieben. Dies ist besonders nützlich für Polygone mit Löchern.

fig, ax = plt.subplots()
filled01 = [[[0, 0], [3, 0], [3, 3], [0, 3], [1, 1], [1, 2], [2, 2], [2, 1]]]
M = Path.MOVETO
L = Path.LINETO
kinds01 = [[M, L, L, L, M, L, L, L]]
cs = ContourSet(ax, [0, 1], [filled01], [kinds01], filled=True)
cbar = fig.colorbar(cs)

ax.set(xlim=(-0.5, 3.5), ylim=(-0.5, 3.5),
       title='User specified filled contours with holes')

plt.show()
User specified filled contours with holes

Gesamtlaufzeit des Skripts: (0 Minuten 1,204 Sekunden)

Galerie generiert von Sphinx-Gallery