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