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
相关产品推荐
相关产品推荐

