Visualización de líneas de contorno en Matplotlib

PythonPythonBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta práctica te guiará sobre cómo mostrar tus propias líneas de contorno y polígonos utilizando ContourSet en Matplotlib. Las líneas de contorno para cada nivel son una lista/tupla de polígonos. Los contornos rellenos entre dos niveles también son una lista/tupla de polígonos. Los puntos pueden estar ordenados en sentido horario o antihorario.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tengas que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y te resolveremos el problema inmediatamente.

Importar las bibliotecas necesarias

El primer paso es importar las bibliotecas necesarias. En esta práctica, usaremos Matplotlib.

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

Definir las líneas de contorno y los polígonos

El siguiente paso es definir las líneas de contorno y los polígonos. En este ejemplo, tenemos líneas y contornos rellenos entre dos niveles.

## Contour lines for each level are a list/tuple of polygons.
lines0 = [[[0, 0], [0, 4]]]
lines1 = [[[2, 0], [1, 2], [1, 3]]]
lines2 = [[[3, 0], [3, 2]], [[3, 3], [3, 4]]]  ## Note two lines.

## Filled contours between two levels are also a list/tuple of polygons.
## Points can be ordered clockwise or anticlockwise.
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]]]

Crear la gráfica

El siguiente paso es crear la gráfica. Esto se puede hacer utilizando la función ContourSet.

fig, ax = plt.subplots()

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

## Líneas de contorno (no rellenas).
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')

Crear contornos rellenos con agujeros

Se pueden especificar múltiples líneas de contorno relleno en una sola lista de vértices de polígono junto con una lista de tipos de vértices (tipos de código) tal como se describe en la clase Path. Esto es particularmente útil para polígonos con agujeros.

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')

Resumen

En esta práctica, aprendimos cómo mostrar nuestras propias líneas de contorno y polígonos utilizando ContourSet en Matplotlib. Definimos las líneas de contorno y los polígonos, creamos la gráfica y creamos contornos rellenos con agujeros.