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.