Python 官方文档:入门教程 => 点击学习
Matplotlib是python提供的一套基于NumPy的绘图工具包,用Python实现与MATLAB相似的命令api,十分适合交互式绘制图表,成为Python中应用非常广的绘图工具包之一。 在对数据可视化时,为了突出某一段数据需要对部分
Matplotlib是python提供的一套基于NumPy的绘图工具包,用Python实现与MATLAB相似的命令api,十分适合交互式绘制图表,成为Python中应用非常广的绘图工具包之一。
在对数据可视化时,为了突出某一段数据需要对部分区域进行填充处理。Matplotlib中通过fill_between()函数实现填充两个水平曲线之间的区域。
首先我们通过以下语句,查看fill_between的参数列表
plt.fill_between?
可以看到fill_between()函数语法:
matplotlib.pyplot.fill_between(x,y,y2=0,where=None,interpolate=False,step=None,*,data=None,**kwargs)
参数描述:
x:一个数组,定义水平轴上的点
y:一个数组或者标量,表示y轴覆盖的下限
y2:一个数组或者标量,表示y轴覆盖的上限
where:一个布尔数组,如果需要排除某些垂直区域的填充,则定义该数组。需要注意的是,这个定义意味着两个假值之间的一个孤立的真值将不进行填充。相邻的False值将导致不填充True值的两边
interpolate:接受布尔值,只有在使用了where参数同时两条曲线交叉时才有效。默认情况下,被填充的区域将被放在x阵列的位置,定义一个被填充的多边形区域。与x相交的部分被裁剪。
step:如果填充需要一个步骤函数,则使用该参数。接受'pre'、'post'、'mid'三个值,用于指定步骤将发生的位置。pre代表区间(x[i-1],x[i])的值为y[i],x值向左移动;post代表区间(x[i],x[i+1])的值为y[i],x值向右移动;mid代表步骤发生在x位置的中间。
其余参数描述可见该函数参数列表。
1.准备工作
#导入库import numpy as npimport matplotlib.pyplot as plt#配置中文标签的正常显示plt.rcParams['font.sans-serif']=['SimHei']#配置负号的正常显示plt.rcParams['axes.unicode_minus']=False
2.填充曲线下面部分区域
#准备数据x=np.linspace(0,1,500)y=np.sin(3*np.pi*x)#画曲线plt.plot(x,y)#填充曲线plt.fill_between(x,0,y,facecolor='pink')
3.填充部分区域
#准备数据x=np.linspace(0,1,500)y=np.sin(3*np.pi*x)#画线plt.plot(x,y)#填充plt.fill_between(x[15:300],0,0.2,facecolor='pink')
4 .两条曲线之间的区域填充
#数据准备x=np.linspace(0,1,500)y=np.sin(3*np.pi*x)z=y*2#画线plt.plot(x,y,color='b')plt.plot(x,z,color='r')#填充plt.fill_between(x,y,z,facecolor="r",alpha=0.4)
5.根据所给图形写出相应代码
图形
如下图所示
数据
x=np.linspace(-np.pi,np.pi,256,endpoint=True,y=sin(x),y=cos(x))填充区域
紫色区域:(-2.5绿色区域:np.abs(x)<0.5,sinx>0.5
#根据题意准备数据x=np.linspace(-np.pi,np.pi,256,endpoint=True)y=np.sin(x)z=np.cos(x)#x轴的坐标刻度textX=[-np.pi,-np.pi/2,0,np.pi/2,np.pi]#x轴的坐标文本显示textS=['$-\pi$','$-\pi/2$','0','$\pi/2$','$\pi$']#画线并设置其label,lw为线条粗细plt.plot(x,y,lw=2.5,label="正弦sin()")plt.plot(x,z,lw=2.5,label="余弦sin()")#将坐标文本显示到对应坐标刻度上for i in range(5): plt.text(textX[i],0,textS[i])#显示网格plt.grid()#根据题意填充图形plt.fill_between(x,z,where=(x>-2.5) & (x<-0.5),color="purple")plt.fill_between(x,np.abs(x)<0.5,y,y>0.5,color="green")#显示图标plt.legend()plt.show()
来源地址:https://blog.csdn.net/qq_44998582/article/details/128530119
--结束END--
本文标题: python——Matplotlib之fill_between函数
本文链接: https://www.lsjlt.com/news/423721.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0