Manuelle Kontur #

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

import matplotlib.pyplot as plt
from matplotlib.contour import ContourSet
import matplotlib.cm as cm

Konturlinien für jede Ebene 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 Ebenen sind ebenfalls eine Liste/ein Tupel von Polygonen. Punkte können im Uhrzeigersinn oder gegen den Uhrzeigersinn bestellt werden.

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')
Benutzerdefinierte Konturen
[(-0.5, 3.5), (-0.5, 4.5), Text(0.5, 1.0, 'User-specified contours')]

Mehrere gefüllte Konturlinien können in einer einzelnen Liste von Polygonscheitelpunkten zusammen mit einer Liste von Scheitelpunktarten (Codetypen) angegeben werden, wie in der Pfadklasse beschrieben. Dies ist besonders nützlich für Polygone mit Löchern. Hier ist ein Codetyp von 1 ein MOVETO und 2 ein LINETO.

fig, ax = plt.subplots()
filled01 = [[[0, 0], [3, 0], [3, 3], [0, 3], [1, 1], [1, 2], [2, 2], [2, 1]]]
kinds01 = [[1, 2, 2, 2, 1, 2, 2, 2]]
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()
Benutzerdefinierte gefüllte Konturen mit Löchern

Galerie generiert von Sphinx-Gallery