如何在MatLab中对区域进行着色并使其在两条线之间变得透明? [英] How to shade area and make it transparent between two lines in MATLAB?

查看:0
本文介绍了如何在MatLab中对区域进行着色并使其在两条线之间变得透明?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我给两条线之间的区域加了阴影,不太干净:

area(xData,[Y1(:) ,Y2(:)-Y1(:)]); hold on

colormap([1 1 1; 0 0 1]);

如何让它在matlab中也变得透明?所以它是这样的:

参考:peltiertech.com

推荐答案

可以使用area对象的FaceAlpha属性设置透明度级别:

xData = 1:7;
Y1 = [3 2 1 4 3 2 1];
Y2 = [8 6 9 8 7 5 6];
area(xData, Y2, 'EdgeColor',[0 .447 .741], 'FaceColor',[0.929 .694 .125], 'FaceAlpha',.3);
hold on
area(xData, Y1, 'EdgeColor',[0 .447 .741], 'FaceColor', [1 1 1]);

更简洁的方法是使用patch而不是area

h = patch([xData xData(end:-1:1) xData(1)], [Y1 Y2(end:-1:1) Y1(1)], 'b');
set(h, 'EdgeColor',[0 .447 .741], 'FaceColor',[0.929 .694 .125], 'FaceAlpha',.3)

这篇关于如何在MatLab中对区域进行着色并使其在两条线之间变得透明?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆