You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB中如何为两条曲线间区域填充颜色并设置透明度?

在MATLAB中为两条曲线间填充区域设置透明度的方法

嘿,我来帮你搞定这个问题!你用area填充的区域不够清晰,其实只要给填充区域加上透明度参数就能达到你想要的淡色效果啦,给你两种简单的方法:

方法一:改进你现有的area代码

你原来的area函数调用可以直接通过设置对象的FaceAlpha属性来调整透明度,具体代码修改如下:

h = area(xData, [Y1(:), Y2(:)-Y1(:)]);
hold on
% 设置填充区域的透明度,0为完全透明,1为完全不透明,这里设0.3是淡透明效果
h(2).FaceAlpha = 0.3; 
colormap([1 1 1; 0 0 1]);

这里h(2)是因为你传入了两列数据,area会生成两个填充对象,第二个对象就是Y1和Y2之间的填充区域,所以我们调整它的透明度即可。

方法二:用fill函数更直观实现

如果你觉得area的对象管理有点麻烦,用fill函数可以直接针对性填充两条曲线间的区域,代码更清晰:

% 拼接填充所需的坐标点:x正序+倒序,y对应Y1正序+Y2倒序
x_fill = [xData, fliplr(xData)];
y_fill = [Y1, fliplr(Y2)];

% 填充并设置颜色、透明度,同时去掉边框让效果更自然
fill(x_fill, y_fill, 'b', 'FaceAlpha', 0.3, 'EdgeColor', 'none');
hold on

% 最后可以重新绘制两条原始曲线,让线条更突出
plot(xData, Y1, 'k');
plot(xData, Y2, 'k');

这里的FaceAlpha参数同样可以根据你的需求调整,数值越小填充区域越透明,0.3左右的数值就能达到你提供的示例图里的淡蓝色效果啦。

内容的提问来源于stack exchange,提问作者Windy Day

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:37:31