📅  最后修改于: 2023-12-03 14:46:33.607000             🧑  作者: Mango
Matplotlib
是Python中常用的绘图库,提供了很多实用的函数,其中fill_between()
方法是Axes
对象的一个方法,用于填充两个曲线之间的区域。
fill_between(x, y1, y2=0, where=None, interpolate=False, step=None, **kwargs)
x
: 数组类型,指定x轴的数据,长度必须与y1
和y2
相同。y1
: 数组类型,指定第一个曲线的y轴数据。y2
: 数组类型,可选参数,指定第二个曲线的y轴数据,如果没有指定,默认为0。where
: 数组类型,可选参数,指定哪些部分要填充颜色,要求长度与x
相同。如果该参数为None
,则表示填充整个区域。interpolate
: 布尔类型,可选参数,指定是否进行插值。默认为False
,不进行插值,直接连接点与点之间的线段。step
: 字符串类型,可选参数,指定堆叠的方式,有两种方式:pre
表示前一个区间先堆叠,post
表示后一个区间先堆叠。默认为None
,不进行堆叠。**kwargs
: 字典类型,其他参数,可以自定义fill_between
填充区域的样式。import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2 * np.pi, 100)
y1 = np.sin(x)
y2 = np.cos(x)
plt.fill_between(x, y1, y2, where=(y1 > y2), interpolate=True, color='green', alpha=0.4, label='fill_between', hatch='/')
plt.plot(x, y1, 'r-', label='sin')
plt.plot(x, y2, 'b-', label='cos')
plt.legend(loc='upper right')
plt.show()
该示例中,通过np.sin(x)
和np.cos(x)
生成两条曲线,再通过fill_between
方法绘制与y1
和y2
之间的交叉区域的填充。其中where
参数限制了只在y1 > y2
的区域进行填充,interpolate
参数进行了插值操作,连接了交叉点与左右两侧的点,color
参数指定了填充颜色,alpha
参数指定了填充的透明度,label
指定填充区域的标签,hatch
参数指定了填充区域的填充样式。
以上就是Python
中的Matplotlib.axes.Axes.fill_between()
方法的详细介绍。