使用matplotlib中fill和fill_between填充函数之间的空白区域

目录

 

 fill:用来填充坐标轴和函数之间的区域

 fill_between:用来填充函数之间的区域 

 下面是加入了明确参数的fill_between的示例展示:


fill:用来填充坐标轴和函数之间的区域

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

x=np.linspace(0,2*np.pi,num=500)
y=np.sin(x)

plt.fill(x,y,color='cornflowerblue',alpha=0.4)
plt.plot(x,y,color='red',alpha=0.8)
plt.plot([x[0],x[-1]],[y[0],y[-1]],color='red',alpha=0.8)

plt.xlim(0,2*np.pi)
plt.ylim(-1.1,1.1)

plt.show()

 fill_between:用来填充函数之间的区域 

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

x=np.linspace(0,2,500)#使用numpy库中的linspace在0到2之间平均取500个点
y1=np.sin(2*np.pi*x)
y2=1.4*np.sin(3*np.pi*x)#分别绘制y1和y2图像

fig,ax=plt.subplots(3,1,sharex='all')#这是一个3行1列的共享x轴的网格布局子区
plt.xlim(0,2)#设置x轴范围

ax[0].fill_between(x,0,y1,color='red',alpha=0.5)#将第一个子图曲线y1和y=0之间的区域填充上红色
ax[0].set_ylim(-1.2,1.2)#设置y轴范围

ax[1].fill_between(x,y2,1.1,color='blue',alpha=0.5)#y2和y=1.1之间区域填充成蓝色,透明度为0.5
ax[1].set_ylim(-1.5,1.5)

ax[2].fill_between(x,y1,y2,color='blue',alpha=0.3) #y1和y2之间区域填充成蓝色,透明度为0.3
ax[2].set_ylim(-1.5,1.5)

plt.show()

 下面是加入了明确参数的fill_between的示例展示:

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

x=np.linspace(0,2,500)
y1=np.sin(2*np.pi*x)
y2=1.4*np.sin(3*np.pi*x)

fig=plt.figure(figsize=(12,6))#指定画板的大小为12:6
ax=fig.add_subplot(111)#添加画布

ax.plot(x,y1,color='black')#分别绘制图像
ax.plot(x,y2,color='red')
ax.set_xlim(0,2)设置x轴的范围

#where指定范围,interpolate设定为True,可以为曲线交叉点附近的区域指定颜色,本人调节该参数后无变化
ax.fill_between(x,y1,y2,where=y1<=y2,interpolate=True,facecolor='cornflowerblue',alpha=0.7)
ax.fill_between(x,y2,y1,where=y1>=y2,interpolate=True,facecolor='darkred',alpha=0.7)

plt.show()

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

fig=plt.figure()
ax=fig.add_subplot(111)

y=np.linspace(0,2,500)
x1=np.sin(2*np.pi*y)
x2=1.4*np.sin(3*np.pi*y)

ax.plot(x1,y,color='k',ls=':',lw=2)#设定线条样式为虚线,宽度为2
ax.plot(x2,y,color='k')

ax.fill_betweenx(y,x2,x1,where=x1<=x2,interpolate=True,facecolor='cornflowerblue',alpha=0.7)
ax.fill_betweenx(y,x2,x1,where=x1>=x2,interpolate=True,facecolor='darkred',alpha=0.7)
ax.set_xlim(-1.5,1.5)
ax.set_ylim(0,2)
ax.grid(ls=':',lw=1,color='gray',alpha=0.5)
plt.show()

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱打羽毛球的小怪兽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值