matplotlib.pyplot.fill_between()函数
Matplotlib是Python中一个非常棒的二维数组绘图可视化库。Matplotlib是一个基于NumPy数组构建的多平台数据可视化库,用于更广泛的SciPy堆栈。
matplotlib.pyplot.fill_between ()
matplotlib.pyplot.fill_between()用于填充两条水平曲线之间的区域。两点(x, y1)和(x, y2)定义了曲线。这将创建一个或多个描述填充区域的多边形。“where”参数可以用来有选择地填充一些区域。默认情况下,边直接连接给定的点。如果填充需要一个步骤函数,则使用’ step ‘参数。
语法:matplotlib.pyplot.fill_between(x, y1, y2=0, where=None, step=None, interpolate=False, *, data=None, **kwargs)
参数:
- x:它是长度为n的数组。这些是定义曲线的节点的y坐标。
- y1:它是长度为N的数组或标量。这表示定义第一条曲线的节点的x坐标。
- y2:长度为N的数组,本质上是可选的。默认值为0。这表示定义第二条曲线的节点的x坐标。
- where:长度为n的布尔值数组。如果需要排除某些垂直区域的填充,则定义该数组。需要注意的是,这个定义意味着两个假值之间的一个孤立的真值将不进行填充。相邻的False值将导致不填充True值的两边。
- interpolate:这是一个可选参数,接受布尔值。它只有在使用的位置和两条曲线相交时才有意义。在语义上,如果通常用于y1>y2或类似的情况。默认情况下,被填充的区域将被放置在x阵列的位置,定义一个被填充的多边形区域。与x相交的部分被剪短了。设置该参数为True,计算实际交点,并扩展到填充区域直到点。
- step:这是一个可选参数,接受三个值中的一个,即’ pre ‘, ‘ post ‘和’ mid ‘。这用于指定步骤将发生的位置。
- pre:从每个y位置开始,x值一直向左连续,也就是说,区间(x[i-1], x[i])的值为y[i]。
- post:从每个y位置开始,x值不断向右移动,也就是说,区间(x[i], x[i+1])的值为y[i]。
- mid:这些步骤发生在x位置的中间。
返回值:它从PolyCollection中返回一个绘制的多边形。
其他参数:**kwargs包含PolyCollection中控制多边形属性的关键字;
Property | Description |
---|---|
agg_filter | 一个filter函数,它接受一个(m, n, 3)浮点数组和一个返回(m, n, 3)数组的dpi值 |
alpha | float or None |
animated | bool |
array | ndarray |
capstyle | {‘butt’, ’round’, ‘projecting’} |
clim | 长度为2的浮点序列;可以在具有vmin和vmax kwargs的方法中重写。 |
antialiased or aa or antialiaseds | Bool或Bool序列 |
clip_box | Bbox |
clip_on | bool |
clip_path | [(Path, Transform) |
color | rgba元组的颜色或序列 |
contains | callable |
edgecolor or ec or edgecolors | 颜色或颜色序列或“face” |
Facecolor fc或facecolors | 颜色或颜色序列 |
figure | figure |
gid | str |
hatch | {‘/’, ‘\’, ‘\|’, ‘-‘, ‘+’, ‘x’, ‘o’, ‘O’, ‘.’, ‘*’} |
in_layout | bool |
joinstyle | {‘miter’, ’round’, ‘bevel’} |
linestyle or ls or linestyles or dashes | {‘-‘, ‘–‘, ‘-.’, ‘: ‘, “, (offset, on-off-seq),…} |
linewidth or linewidths or lw | 浮点数或浮点数序列 |
norm | 正常化 |
offset_position | {‘screen’, ‘data’} |
offsets | 浮点数或浮点数序列 |
path_effects | AbstractPathEffect |
picker | None or bool or float or callable |
pickradius | unknown |
path_effects | AbstractPathEffect |
picker | [[Artist, Event] ,Tuple[bool, dict]] |
pickradius | float |
rasterized | bool or None |
sketch_params | (scale: float, length: float, randomness: float) |
snap | bool或None |
transform | matplotlib.transforms.Transform |
url | str |
urls | List[str] or None |
可见 | bool |
xdata | 一维数组 |
zorder | float |
示例1
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0,10,0.1)
# plotting the lines
a1 = 4 - 2*x
a2 = 3 - 0.5*x
a3 = 1 -x
# The upper edge of
# polygon
a4 = np.minimum(a1, a2)
# Setting the y-limit
plt.ylim(0, 5)
# Plot the lines
plt.plot(x, a1,
x, a2,
x, a3)
# Filling between line a3
# and line a4
plt.fill_between(x, a3, a4, color='green',
alpha=0.5)
plt.show()
输出:
示例2
import matplotlib.pyplot as plt
import numpy as np
a = np.linspace(0,2*3.14,50)
b = np.sin(a)
plt.fill_between(a, b, 0,
where = (a > 2) & (a <= 3),
color = 'g')
plt.plot(a,b)
输出: