Contorno Manual #

Ejemplo de visualización de sus propias curvas de nivel y polígonos utilizando ContourSet.

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

Las curvas de nivel de cada nivel son una lista/tupla de polígonos.

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

Los contornos rellenos entre dos niveles también son una lista/tupla de polígonos. Los puntos se pueden pedir en sentido horario o antihorario.

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')
Contornos especificados por el usuario
[(-0.5, 3.5), (-0.5, 4.5), Text(0.5, 1.0, 'User-specified contours')]

Se pueden especificar varias líneas de contorno rellenas en una sola lista de vértices de polígonos junto con una lista de tipos de vértices (tipos de código) como se describe en la clase Ruta. Esto es particularmente útil para polígonos con agujeros. Aquí, un tipo de código de 1 es MOVETO y 2 es 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()
Contornos rellenos especificados por el usuario con agujeros

Galería generada por Sphinx-Gallery