Comment remplir entre plusieurs lignes dans Matplotlib

Suraj Joshi 18 juillet 2021
Comment remplir entre plusieurs lignes dans Matplotlib

Nous pouvons remplir une zone entre plusieurs lignes dans Matplotlib en utilisant la méthode matplotlib.pyplot.fill_between(). La fonction fill_between() remplit l’espace entre deux lignes à la fois, mais nous pouvons sélectionner une paire de lignes pour remplir la zone entre plusieurs lignes.

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()

Production:

Condition préalable Remplir entre plusieurs lignes Matplotlib

Dans la figure, nous devons remplir le polygone de telle sorte que les conditions suivantes soient remplies :

y <= 8- 4x
y <= 6 - x
y >= 2 - 2x
y >= 0

Remplir entre plusieurs lignes dans 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()

Production:

Remplir entre plusieurs lignes Matplotlib

Pour satisfaire à la condition donnée ci-dessus, nous avons fixé la limite de l’axe des y entre 0 et 10 de sorte que y >= 0 comme première étape.

Comme les lignes y=6-x et y=8-4x se croisent, en s’assurant que y <= 8- 4x et y <= 6 - x sont toutes deux satisfaites, nous utilisons la méthode minimum() pour sélectionner les points qui suivent les deux conditions.

Enfin, nous remplissons la zone entre y1 et y4 pour fournir la région du polygone spécifiée par la condition.

Alternativement, nous pouvons trouver les points d’intersection des lignes, qui agissent comme les points d’angle des zones. Une fois que nous connaissons les points d’angle, nous pouvons remplir le polygone en utilisant la méthode matplotlib.pyplot.fill().

import matplotlib.pyplot as plt

x = [2, 4, 2, 0]
y = [4, 2, 0, 2]

plt.fill(x, y)
plt.show()

Production:

Tracer un polygone avec des points d&rsquo;angle en utilisant la méthode de remplissage

Cette méthode remplit le polygone avec des points d’angle, (2,4), (4,2), (2,0) et (0,2).

La liste x représente les coordonnées x des points d’angle du polygone, et le y représente les coordonnées y des points d’angle du polygone.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Article connexe - Matplotlib Lines