Python使用Matplotlib实现区域填充详解
本文介绍如何在Python中使用Matplotlib库进行区域填充。详细解析fill()函数用于绘制填充多边形,以及fill_between()函数在两条曲线间填充颜色的用法。重点讲解color、alpha、where及interpolate等关键参数的配置,并结合完整代码示例展示不同场景下的填充效果。
开发环境与依赖库配置
集成开发环境选用Pycharm。
Python解释器版本为python3.7。
Matplotlib库版本指定为Matplotlib 1.11。
Numpy库版本指定为Numpy1.15.
区域填充技术概述
引言部分
区域填充的核心目标即为对指定区域进行颜色渲染。
相关代码实现及最终渲染效果展示

fill()函数功能说明
官方文档地址:https://matplotlib.org/api/_as_gen/matplotlib.pyplot.fill.html
该函数主要用于绘制并填充多边形区域。
关键属性参数说明如下:
- args参数接收x和y坐标序列,每个多边形由节点x和y的位置列表定义。
- color参数指定填充的具体颜色。
- alpha参数控制填充区域的透明度。
该函数仅对两个图形重合的区域进行填充处理。
对应代码片段及视觉效果展示


fill_between()函数功能说明
- x参数为序列,定义曲线节点的x坐标。
- y1参数为序列,定义第一条曲线的y坐标。
- y2参数为序列,定义第二条曲线的y坐标。
- where参数为可选布尔值,当y1>y2时,表示y1线在上方的区域进行填充;当y1<y2时,表示y2线在上方的区域进行填充。
- interpolate参数用于处理因数据点较少导致的填充空白缝隙,设置为True时会自动填充这些缝隙。
- facecolor参数指定要填充的具体颜色。
启用interpolate参数后的填充效果展示


具体应用示例
import matplotlib.pyplot as plt
import numpy as np
x= np.linspace(0,5*np.pi, 1000)
y1 = np.sin(x)
y2 = np.sin(2*x)
#plt.plot(x,y1)
#plt.plot(x,y2)
plt.fill(x,y1,'b',alpha=0.5)
plt.fill(x,y2,'r',alpha=0.3)
plt.fill_between(x,y1,y2,facecolor='green')
plt.grid(True)
plt.show()
#########################################################
plt.plot(x,y1,'b',alpha=0.5)
plt.plot(x,y2,'r',alpha=0.3)
#添加条件
#如果数据点比较少的情况下,会有缝隙出现,使用interpolate可以填充缝隙
plt.fill_between(x,y1,y2,where=y1>=y2,facecolor='green',interpolate=True)
plt.fill_between(x,y1,y2,where=y2>y1,facecolor='yellow',interpolate=True)
plt.grid(True)
plt.show()
###########################################################
n = 256
X = np.linspace(-np.pi, np.pi, n, endpoint=True)
Y = np.sin(2 * X)
plt.plot(X, Y + 1, color='blue', alpha=1.00)
plt.fill_between(X, 1, Y + 1, color='blue', alpha=.25)
plt.plot(X, Y - 1, color='blue', alpha=1.00)
plt.fill_between(X, -1, Y - 1, (Y - 1) > -1, color='blue', alpha=.25)
plt.fill_between(X, -1, Y - 1, (Y - 1) < -1, color='red', alpha=.25)
plt.xlim(-np.pi, np.pi)
plt.xticks(())
plt.ylim(-2.5, 2.5)
plt.yticks(())
示例运行效果图

参考视频资源:《Python数据可视化分析 matplotlib教程》
总结与致谢
感谢Matplotlib提供的完善文档,以及麦子学院提供的视频教学支持。
本文关于Python实现区域填充的示例代码介绍至此结束。如需了解更多Python区域填充相关内容,请搜索本站历史文章或继续浏览后续文章,希望大家今后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









