如何在 Matplotlib 中的多個線條之間進行填充
Suraj Joshi
2021年7月18日
2020年11月7日
我們可以在 Python Matplotlib 中使用 matplotlib.pyplot.fill_between()
方法來填充多個線條之間的區域。fill_between()
函式一次填充兩條線之間的空間,但我們可以選擇一對行來填充多個線條之間的區域。
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()
輸出:
在圖中,我們需要填充多邊形,使其滿足以下條件。
y <= 8- 4x
y <= 6 - x
y >= 2 - 2x
y >= 0
在 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()
輸出:
為了滿足上述給定的條件,我們設定 y 軸極限為 0
到 10
,使 y >= 0
作為第一步。
由於線段 y=6-x
和 y=8-4x
相交,確保 y <= 8- 4x
和 y <= 6 - x
都滿足,我們用 minimum()
方法選擇符合這兩個條件的點。
最後,我們填充 y1
和 y4
之間的區域,提供需求指定的多邊形區域。
另外,我們也可以找到線的交點,作為區域的角點。一旦我們知道角點,我們就可以使用 matplotlib.pyplot.fill()
方法填充多邊形。
import matplotlib.pyplot as plt
x = [2,4,2,0]
y = [4,2,0,2]
plt.fill(x, y)
plt.show()
輸出:
這種方法用拐角點填充多邊形,(2,4)
,(4,2)
,(2,0)
和 (0,2)
。
列表 x
代表多邊形角點的 x 座標,y
代表多邊形角點的 y 座標。
Author: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn