Cómo rellenar entre múltiples líneas en Matplotlib
Podemos rellenar un área entre múltiples líneas en Matplotlib usando el método matplotlib.pyplot.fill_between()
. La función fill_between()
llena el espacio entre dos líneas a la vez, pero podemos seleccionar un par de líneas para llenar el área entre múltiples líneas.
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.02)
y1 = 8 - 4 * x
y2 = 6 - x
y3 = 2 - 2 * x
plt.plot(x, y1, color="red", label="8-4x")
plt.plot(x, y2, color="blue", label="6-x")
plt.plot(x, y3, color="green", label="2-2x")
plt.legend()
plt.show()
Resultado:
En la figura, necesitamos llenar el polígono de tal manera que se cumplan las siguientes condiciones:
y <= 8- 4x
y <= 6 - x
y >= 2 - 2x
y >= 0
Rellenar entre múltiples líneas en Matplotlib
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0, 5, 0.02)
y1 = 2 - 2 * x
y2 = 6 - x
y3 = 8 - 4 * x
y4 = np.minimum(y2, y3)
plt.plot(x, y1, color="red", label="2-2x")
plt.plot(x, y2, color="blue", label="6-x")
plt.plot(x, y3, color="green", label="8-4x")
plt.ylim(0, 10)
plt.fill_between(x, y1, y4, color="yellow")
plt.legend()
plt.show()
Resultado:
Para satisfacer la condición dada arriba, fijamos el límite del eje y entre 0
y 10
, de modo que y >= 0
como primer paso.
Como las líneas y=6-x
y y=8-4x
se cruzan entre sí, asegurando que y <= 8- 4x
y y <= 6 - x
se satisfacen ambas, usamos el método minimum()
para seleccionar los puntos que siguen las dos condiciones.
Finalmente, rellenamos el área entre y1
y y4
para suministrar la región del polígono especificada por el requisito.
Alternativamente, podemos encontrar los puntos de intersección de las líneas, que actúan como puntos de esquina de las áreas. Una vez que conocemos los puntos de esquina, podemos rellenar el polígono usando el método matplotlib.pyplot.fill()
.
import matplotlib.pyplot as plt
x = [2, 4, 2, 0]
y = [4, 2, 0, 2]
plt.fill(x, y)
plt.show()
Resultado:
Este método llena el polígono con puntos de esquina, (2,4)
, (4,2)
, (2,0)
y (0,2)
.
La lista x
representa las coordenadas x de los puntos de esquina del polígono, y la y
representa las coordenadas y de los puntos de esquina del polígono.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn