Riempi tra più righe in Matplotlib

Suraj Joshi 15 febbraio 2024
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:

Condizione precedente Riempimento tra più righe Matplotlib

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:

Riempi tra più righe Matplotlib

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:

Traccia un poligono con punti d&rsquo;angolo usando il metodo di riempimento

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.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Matplotlib Lines