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