哈喽,各位 MATLAB 的小伙伴们大家好!👋
在科研绘图或数据分析中,我们经常遇到这样的需求:不仅要画出曲线,还要高亮显示某个特定的时间段,或者给误差带加上阴影。
这时候,单靠 plot 函数就显得力不从心了。今天我们来详细聊聊 MATLAB 中一个非常强大但容易被忽视的函数——fill(填充函数)。学会了它,你的论文配图瞬间提升一个档次!✨
一、 Fill 函数是干什么的?
简单来说,fill 函数的作用就是:根据你给定的顶点坐标,画出一个封闭的多边形,并给它填上颜色。
它的基本语法非常简单:
Matlab : fill(X, Y, ColorSpec)
二、 基础入门:画一个正方形
我们先从最简单的开始,画一个红色的正方形。 注意: 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 会自动将最后一个点和第一个点连起来,形成封闭图形,所以你不需要重复写第一个点。

三、 进阶实战:科研绘图中常用的技巧
光画正方形肯定不够用,下面介绍两个最常用的场景:“高亮特定区域”和“绘制误差阴影”。
场景 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 时,新手容易遇到以下问题,请务必注意:
3.去掉难看的黑边 默认情况下,fill 会给多边形加一圈黑色的边框。在做误差带或背景高亮时,这根黑线非常碍眼。 解决办法:设置属性 'EdgeColor', 'none'。
结语:fill 函数虽然参数不多,但在美化图表方面作用巨大。无论是标记区间、绘制置信区间,还是制作不规则图形,它都是一把利器。
希望这篇简单的教程能帮你解决绘图中的难题!如果你觉得有用,不要忘记点赞、收藏、关注哦!我们下期 MATLAB 教程见!🎓
(本文代码已在 MATLAB R2022b 测试通过)3
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删