mpl填充式绘图
填充式绘图类似于画图中的填充桶。mpl中主要有三个函数实现这一功能。
1.plt.fill()
作用:绘制多边形,并根据指定的颜色进行填充。
函数格式:fill(*args, data=None, **kwargs)
参数说明:
*args : sequence of x, y, [color]
一系列x,y,[color]这样的组合。其中x是我们要绘制的多边形的各个顶点的横坐标,y是纵坐标。点的横纵坐标是顺序对应的。[color]是通用颜色参数。
点的连接也是严格按照指定的顺序的。
data:indexable object, optional
参数(x,y)若用参数代替而不是明确的数值,参数data负责填充数据。
ax.fill("x","y", data=dict(x=[1,1,3,3,5,5], y=[0,5,5,1,1,0])) plt.show()

如果我不要填充的颜色,就要个边缘框呢?当然是老熟人plt.plot了!换个函数名,参数都不用改。
ax.plot("x","y", data=dict(x=[1,1,3,3,5,5], y=[0,5,5,1,1,0])) plt.show()

2.plt.fill_between()
作用:填充两条曲线中的区域。
曲线由点(x, y1)和(x, y2)定义。这将创建一个或多个描述填充区域的多边形。
默认情况下,这些边直接连接给定的点。
函数格式:fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, *, data=None, **kwargs)
参数说明:
x : array (length N)
定义曲线的节点的横坐标。
y1 : array (length N) or scalar
定义第一条曲线节点的纵坐标。
y2 : array (length N) or scalar, default: 0
定义第二条曲线节点的纵坐标。
where : array of bool (length N), optional
填充条件。比如where=y1>y2,则只绘制y1>y2的部分。若为 None,则对数组 x 指定范围全部填充;若为布尔数组,则填充 True 部分。
interpolate : bool, default: False
这个选项只有在*where*被使用且两条曲线交叉时才有意义。
默认情况下,定义填充区域的多边形节点将只放置在*x*数组中的位置。这样的多边形不能描述接近交集的上述语义。包含交集的x切面被简单地裁剪掉。
设置*interpolate*为*True*将计算实际的交点,并将填充区域扩展到这一点。
人话就是:更精确地计算交点并显示出来。
x=np.linspace(-5,5,1000) y1=np.sin(x) y2=np.cos(x) plt.grid() ax.set(axisbelow=True) plt.fill_between(x,y1,y2,where=y1>y2,interpolate=True) plt.show()

3.fill_betweenx
这个函数就等于是把plt.fill_between()的横纵坐标颠倒过来。

浙公网安备 33010602011771号