Cambiar los colores de las líneas de un rectángulo

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 cambiar los colores de las líneas que intersectan un rectángulo utilizando la función .intersects_bbox de Matplotlib. Crearemos un rectángulo y generaremos líneas aleatorias que lo intersecten. Luego, cambiaremos el color de las líneas que intersectan a rojo y el color de las líneas restantes a azul.

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 las bibliotecas necesarias

Importaremos las bibliotecas matplotlib.pyplot y numpy para crear el rectángulo y generar líneas aleatorias.

import matplotlib.pyplot as plt
import numpy as np

Configurar el rectángulo

Definiremos la posición y las dimensiones del rectángulo utilizando las variables left, bottom, width y height. Luego, crearemos el rectángulo utilizando la clase Rectangle y lo agregaremos a la gráfica utilizando el método add_patch.

left, bottom, width, height = (-1, -1, 2, 2)
rect = plt.Rectangle((left, bottom), width, height,
                     facecolor="black", alpha=0.1)

fig, ax = plt.subplots()
ax.add_patch(rect)

Generar líneas aleatorias

Generaremos 12 líneas aleatorias utilizando la biblioteca numpy y las graficaremos utilizando el método plot. Si una línea intersecta el rectángulo, su color será rojo, de lo contrario azul. Utilizaremos la clase Path para crear una línea y el método intersects_bbox para comprobar si intersecta el rectángulo.

bbox = Bbox.from_bounds(left, bottom, width, height)

for i in range(12):
    vertices = (np.random.random((2, 2)) - 0.5) * 6.0
    path = Path(vertices)
    if path.intersects_bbox(bbox):
        color = 'r'
    else:
        color = 'b'
    ax.plot(vertices[:, 0], vertices[:, 1], color=color)

Mostrar la gráfica

Mostraremos la gráfica utilizando el método show.

plt.show()

Resumen

En este laboratorio, aprendimos cómo cambiar los colores de las líneas que intersectan un rectángulo utilizando la función .intersects_bbox de Matplotlib. Creamos un rectángulo y generamos líneas aleatorias que lo intersectaban. Luego, cambiamos el color de las líneas que intersectaban a rojo y el color de las demás líneas a azul.