许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  MATLAB fill函数填充绘图让数据亮起来

MATLAB fill函数填充绘图让数据亮起来

阅读数 3
点赞 0
article_banner


哈喽,各位 MATLAB 的小伙伴们大家好!👋

在科研绘图或数据分析中,我们经常遇到这样的需求:不仅要画出曲线,还要高亮显示某个特定的时间段,或者给误差带加上阴影。

这时候,单靠 plot 函数就显得力不从心了。今天我们来详细聊聊 MATLAB 中一个非常强大但容易被忽视的函数——fill(填充函数)。学会了它,你的论文配图瞬间提升一个档次!✨

一、 Fill 函数是干什么的?

简单来说,fill 函数的作用就是:根据你给定的顶点坐标,画出一个封闭的多边形,并给它填上颜色。

它的基本语法非常简单:

Matlab : fill(X, Y, ColorSpec)

  • X:多边形各顶点的横坐标向量。
  • Y:多边形各顶点的纵坐标向量。
  • ColorSpec:颜色,可以是 'r' (红), 'b' (蓝) 等字符,也可以是 RGB 向量如 [0.2 0.2 0.2]。

二、 基础入门:画一个正方形

我们先从最简单的开始,画一个红色的正方形。 注意: MATLAB 会按照你提供坐标的顺序,依次连接这些点。

x = [0, 1, 1, 0]; % 顶点的 x 坐标

y = [0, 0, 1, 1]; % 顶点的 y 坐标

figure;

fill(x, y, 'r'); % 填充红色

axis([-0.51.5-0.51.5]); % 调整坐标轴范围 title('基础正方形填充');

💡 小贴士:fill 会自动将最后一个点和第一个点连起来,形成封闭图形,所以你不需要重复写第一个点。

MATLAB fill函数填充

三、 进阶实战:科研绘图中常用的技巧

光画正方形肯定不够用,下面介绍两个最常用的场景:“高亮特定区域”和“绘制误差阴影”。

场景 1:高亮标记波形中的“异常区域”

假设我们要在一堆数据中,把第 2 秒到第 4 秒的区域标记出来,还要加上半透明效果,不遮挡原始曲线。

% 1. 生成模拟数据

t = 0:0.1:10;

y = sin(t) + 0.1*randn(size(t));

figure;

% 先画原始曲线

plot(t, y, 'LineWidth', 1.5, 'Color', 'b');

hold on;

% 2. 定义高亮区域的顶点

% 假设我们要高亮 x=[2, 4] 的区域

x_fill = [2, 4, 4, 2];   % 左下 -> 右下 -> 右上 -> 左上

y_limit = get(gca, 'YLim'); % 获取当前y轴范围,保证填满上下

y_fill = [y_limit(1), y_limit(1), y_limit(2), y_limit(2)];

% 3. 使用 fill 填充

% 'FaceAlpha' 控制透明度 (0-1),非常重要!

% 'EdgeColor', 'none' 去掉黑色的边框线,更美观

fill(x_fill, y_fill, 'y', 'FaceAlpha', 0.3, 'EdgeColor', 'none');

title('波形局部高亮示例');

legend('原始信号', '关注区域');

四、 避坑指南(干货)⚠️

在使用 fill 时,新手容易遇到以下问题,请务必注意:

  1. 坐标顺序很重要! 如果你构造的向量顺序乱了(比如 x 是乱序的),填充出来的图形会变成“蝴蝶结”或者乱七八糟的多边形。一定要顺时针或逆时针依次排列顶点。
  2. 遮挡问题 fill 也是一种绘图对象。如果你先画了 plot 线条,再画不透明的 fill,线条就会被盖住。 解决办法 1:先画 fill,再画 plot。 解决办法 2:设置 fill 的 'FaceAlpha' 透明度小于 1。 解决办法 3:使用 uistack 函数调整图层顺序。

3.去掉难看的黑边 默认情况下,fill 会给多边形加一圈黑色的边框。在做误差带或背景高亮时,这根黑线非常碍眼。 解决办法:设置属性 'EdgeColor', 'none'。

结语:fill 函数虽然参数不多,但在美化图表方面作用巨大。无论是标记区间、绘制置信区间,还是制作不规则图形,它都是一把利器。

希望这篇简单的教程能帮你解决绘图中的难题!如果你觉得有用,不要忘记点赞、收藏、关注哦!我们下期 MATLAB 教程见!🎓

(本文代码已在 MATLAB R2022b 测试通过)3


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空