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:
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:
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:
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 is a backend software engineer at Matrice.ai.
LinkedIn