Wie man zwischen mehreren Zeilen in Matplotlib füllt

Suraj Joshi 18 Juli 2021
Wie man zwischen mehreren Zeilen in Matplotlib füllt

Wir können einen Bereich zwischen mehreren Zeilen in der Matplotlib mit der Methode matplotlib.pyplot.fill_between() füllen. Die Funktion fill_between() füllt den Raum zwischen zwei Zeilen auf einmal, aber wir können ein Zeilenpaar auswählen, um den Bereich zwischen mehreren Zeilen zu füllen.

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

Ausgabe:

Vorbedingung Füllen zwischen mehreren Zeilen Matplotlib

In der Abbildung müssen wir das Polygon so ausfüllen, dass die folgenden Bedingungen erfüllt sind:

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

Füllen zwischen mehreren Zeilen 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()

Ausgabe:

Füllen zwischen mehreren Zeilen Matplotlib

Um die obige Bedingung zu erfüllen, setzen wir die y-Achsengrenze zwischen 0 und 10, so dass y >= 0 als erster Schritt gilt.

Da sich die Linien y=6-x und y=8-4x schneiden und somit sicherstellen, dass y <= 8- 4x und y <= 6 - x beide erfüllt sind, verwenden wir die minimum() Methode, um die Punkte auszuwählen, die den beiden Bedingungen folgen.

Schließlich füllen wir die Fläche zwischen y1 und y4, um die durch die Bedingung spezifizierte Polygonregion zu liefern.

Alternativ können wir die Schnittpunkte der Linien finden, die als Eckpunkte der Flächen dienen. Sobald wir die Eckpunkte kennen, können wir das Polygon mit der Methode matplotlib.pyplot.fill() füllen.

import matplotlib.pyplot as plt

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

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

Ausgabe:

Plotten Sie ein Polygon mit Eckpunkten mit der Füllmethode

Diese Methode füllt das Polygon mit den Eckpunkten (2,4), (4,2), (2,0) und (0,2).

Die Liste x stellt die x-Koordinaten der Eckpunkte des Polygons dar, und die Liste y stellt die y-Koordinaten der Eckpunkte des Polygons dar.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Matplotlib Lines