Crear un polígono relleno con 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

En este laboratorio, aprenderemos cómo crear un polígono relleno utilizando Matplotlib en Python. Usaremos la nieve de Koch como ejemplo de polígono.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga 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 tenga 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 tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

Antes de comenzar, importemos las bibliotecas necesarias.

import matplotlib.pyplot as plt
import numpy as np

Definir la función de la nieve de Koch

A continuación, definiremos una función para generar la nieve de Koch. La función toma dos parámetros: la profundidad de recursión y el factor de escala.

def koch_snowflake(order, scale=10):
    """
    Return two lists x, y of point coordinates of the Koch snowflake.

    Parameters
    ----------
    order : int
        The recursion depth.
    scale : float
        The extent of the snowflake (edge length of the base triangle).
    """
    def _koch_snowflake_complex(order):
        if order == 0:
            ## initial triangle
            angles = np.array([0, 120, 240]) + 90
            return scale / np.sqrt(3) * np.exp(np.deg2rad(angles) * 1j)
        else:
            ZR = 0.5 - 0.5j * np.sqrt(3) / 3

            p1 = _koch_snowflake_complex(order - 1)  ## start points
            p2 = np.roll(p1, shift=-1)  ## end points
            dp = p2 - p1  ## connection vectors

            new_points = np.empty(len(p1) * 4, dtype=np.complex128)
            new_points[::4] = p1
            new_points[1::4] = p1 + dp / 3
            new_points[2::4] = p1 + dp * ZR
            new_points[3::4] = p1 + dp / 3 * 2
            return new_points

    points = _koch_snowflake_complex(order)
    x, y = points.real, points.imag
    return x, y

Generar un polígono relleno

Ahora, podemos generar un polígono relleno utilizando la función fill(). Usaremos la función de la nieve de Koch para generar las coordenadas del polígono.

x, y = koch_snowflake(order=5)

plt.figure(figsize=(8, 8))
plt.axis('equal')
plt.fill(x, y)
plt.show()

Personalizar el polígono

Podemos personalizar los colores y el ancho de línea del polígono utilizando argumentos de palabras clave en la función fill().

x, y = koch_snowflake(order=2)

fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(9, 3),
                                    subplot_kw={'aspect': 'equal'})
ax1.fill(x, y)
ax2.fill(x, y, facecolor='lightsalmon', edgecolor='orangered', linewidth=3)
ax3.fill(x, y, facecolor='none', edgecolor='purple', linewidth=3)

plt.show()

Resumen

En este laboratorio, aprendimos cómo crear un polígono relleno utilizando Matplotlib en Python. Utilizamos la nieve de Koch como ejemplo de polígono y demostramos cómo personalizar el polígono con diferentes colores y anchos de línea.