Python使用Matplotlib实现区域填充详解

Leo
Leo
发布时间:2026-10-14 | 3人浏览过
原创

本文介绍如何在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区域填充相关内容,请搜索本站历史文章或继续浏览后续文章,希望大家今后多多支持本站!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表