Enchimento Entre Múltiplas Linhas em Matplotlib

Suraj Joshi 15 fevereiro 2024
Enchimento Entre Múltiplas Linhas em Matplotlib

Podemos preencher uma área entre múltiplas linhas em Matplotlib utilizando o método matplotlib.pyplot.fill_between(). A função fill_between() preenche o espaço entre duas linhas de cada vez, mas podemos seleccionar um par de linhas para preencher a área entre múltiplas linhas.

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:

Preenchimento de Condição Prévia entre múltiplas linhas Matplotlib

Na figura, precisamos de preencher o polígono de modo a que as seguintes condições sejam satisfeitas:

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

Preencher entre várias linhas em 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:

Preencher entre múltiplas linhas Matplotlib

Para satisfazer a condição dada acima, estabelecemos o limite do eixo y entre 0 e 10 para que y >= 0 como o primeiro passo.

Como as linhas y=6-x e y=8-4x se intersectam entre si, assegurando que y <= 8- 4x e y <= 6 - x são ambas satisfeitas, utilizamos o método minimum() para seleccionar os pontos que seguem as duas condições.

Finalmente, preenchemos a área entre y1 e y4 para abastecer a região poligonal especificada pela exigência.

Em alternativa, podemos encontrar os pontos de intersecção das linhas, que actuam como pontos de canto das áreas. Uma vez conhecidos os pontos de canto, podemos preencher o polígono utilizando o 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:

Plotar um polígono com pontos de canto utilizando o método de preenchimento

Este método preenche o polígono com pontos de canto, (2,4), (4,2), (2,0) e (0,2).

A lista x representa as x coordenadas dos pontos de canto do polígono, e a y representa as y coordenadas dos pontos de canto do polígono.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Artigo relacionado - Matplotlib Lines