填充多边形

填充多边形(fill)

概述
fill函数的功能是根据结点之间连线的封闭区域绘制多边形。

fill函数的签名为:matplotlib.pyplot.fill(*args, data=None, **kwargs)

参数说明如下:

*args:根据x,y位置确定结点绘制多边形,可添加一个可选的颜色标记。数据结构为x, y, [color]序列,支持多组x, y, [color]序列。必备参数。
*args的应用方式如下:

plt.fill(x, y)
plt.fill(x, y, “b”)
plt.fill(x, y, x2, y2)
plt.fill(x, y, “b”, x2, y2, “r”)

data:带标签的数据对象。可索引对象。可选参数。
例如:plt.fill(“time”, “signal”, data={“time”: [0, 1, 2], “signal”: [0, 1, 0]})

**kwargs:matplotlib.patches.Polygon对象的相关属性。

fill函数的返回值为matplotlib.patches.Polygon对象列表。

案例1
注意!多边形是根据数据的顺序依次绘制的,因此,相同的结点由于顺序不同可能填充出来的多边形效果也不同。
例如:同样的数据,*个子图绘制了封闭五边形,第二个子图未绘制封闭的五边形,注意结点的次序。
如果想绘制封闭的多边形需要逆时针依次绘制(坐标点位置)。

%title插图%num
import numpy as np
import matplotlib.pyplot as plt

a = [5, 10, 15, 10, 5]
b = [5, 5, 10, 15, 10]

c = [5, 5, 10, 15, 10]
d = [5, 10, 5, 10, 15]

e = [1, 2, 2, 1]
f = [3, 3, 4, 4]

plt.subplot(221)
plt.plot(a, b, ‘o’)
plt.fill(a, b, ‘r’)
for index, item in enumerate(zip(a, b), 1):
plt.text(item[0], item[1], index)

plt.subplot(222)
plt.plot(c, d, ‘o’)
plt.fill(c, d, alpha=0.5)
for index, item in enumerate(zip(c, d), 1):
plt.text(item[0], item[1], index)

plt.subplot(223)
plt.fill(e, f)

plt.subplot(224)
plt.fill(“time”, “signal”,
data={“time”: [2, 4, 4], “signal”: [3, 4, 3]})

plt.show()

案例2

%title插图%num
import numpy as np
import matplotlib.pyplot as plt

x = np.linspace(0, 5 * np.pi, 1000)

y1 = np.sin(x)
y2 = np.sin(2 * x)

plt.fill(x, y1, color=”g”, alpha=0.3)
plt.fill(x, y2, color=”b”, alpha=0.3)

plt.show()