Riempi tra più righe in Matplotlib
Possiamo riempire un’area tra più righe in Matplotlib usando il metodo matplotlib.pyplot.fill_between(). La funzione fill_between() riempie lo spazio tra due righe alla volta, ma possiamo selezionare una coppia di righe per riempire l’area tra più righe.
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()
Produzione:

Nella figura, dobbiamo riempire il poligono in modo tale che le seguenti condizioni siano soddisfatte:
y <= 8- 4x
y <= 6 - x
y >= 2 - 2x
y >= 0
Riempi tra più righe in 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()
Produzione:

Per soddisfare la condizione data sopra, impostiamo il limite dell’asse y tra 0 e 10 in modo che y >= 0 come primo passo.
Poiché le linee y=6-x e y=8-4x si intersecano tra loro, assicurandoci che y <= 8- 4x e y <= 6 - x siano entrambe soddisfatte, usiamo il metodo minimum() per selezionare i punti che seguono le due condizioni.
Infine, riempiamo l’area tra y1 e y4 per fornire la regione del poligono specificata dal requisito.
In alternativa, possiamo trovare i punti di intersezione delle linee, che fungono da punti d’angolo delle aree. Una volta che conosciamo i punti d’angolo, possiamo riempire il poligono usando il metodo matplotlib.pyplot.fill().
import matplotlib.pyplot as plt
x = [2, 4, 2, 0]
y = [4, 2, 0, 2]
plt.fill(x, y)
plt.show()
Produzione:

Questo metodo riempie il poligono con punti d’angolo, (2,4), (4,2), (2,0) e (0,2).
La lista x rappresenta le coordinate x dei punti d’angolo del poligono, e la y rappresenta le coordinate y dei punti d’angolo del poligono.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn