例如,在曲线y = x ^ 2下方的一个区域()中,一个区域(或孵化;或任何设置与其余部分不同)的最简单方法是什么?
x = 0:pi/10:2*pi;
y = x.^2.;
plot(x,y);
答案 0 :(得分:11)
area(x,y)
应该做到这一点。我不确定该类是否具有FaceAlpha属性。
编辑:不幸的是,区域类没有FaceAlpha属性。但是你可以解决这个问题并直接编辑补丁:
x=0:pi/10:2*pi;
y=x.^2;
H=area(x,y);
h=get(H,'children');
set(h,'FaceAlpha',0.5); %#Tada!
EDIT2:要遮盖曲线上方的区域,您可以使用带有白色填充的第二个区域图。它是一种kludge,但它应该工作。重新开始:
x=0:pi/10:2*pi;
y=x.^2;
y2=max(y)*ones(size(y));
hold on
H1=area(x,y2);
H2=area(x,y);
set(H2,'FaceColor',[1 1 1]);
axis tight
或建立在Jason S的解决方案上,使用baseval输入在曲线上方遮挡:
x=0:pi/10:2*pi;
y=x.^2;
baseval=max(y);
H=area(x,y,baseval);
h=get(H,'children');
set(h,'FaceAlpha',0.5,'FaceColor',[0 1 0]);
axis tight
答案 1 :(得分:5)
详细说明Doresoom的帖子的补充例子:
x=0:pi/50:2*pi;
y1=x.^2;
y2=10+5*sin(3*x);
baseval1=20;
baseval2=3;
clf;
hold on;
H1=area(x,y1,baseval1);
H2=area(x,y2,baseval2);
hold off;
h=get(H1,'children');
set(h,'FaceAlpha',0.5,'FaceColor',[1 0.5 0]);
% set color to orange, alpha to 0.5
h=get(H2,'children');
set(h,'FaceAlpha',0.5,'FaceColor',[0.85 1 0.25]);
% set color to yellow-green, alpha to 0.5
但是你在哪里设置颜色?
h是补丁的句柄(填充区域);如果你键入get(h),你可以看到它的所有属性。 MATLAB docs on patch
properties在某种程度上解释了这些。
例如,如何使用该原理遮蔽曲线上方的区域?
area
在基值和曲线之间创建一个补丁。看起来不像是在两条曲线之间创建区域的简单方法。
答案 2 :(得分:0)
在不弄乱children
的情况下,您还可以:
x = 0:pi/10:2*pi; % from your example
y = x.^2.; % from your example
H=area(x,y);
set(H(1),'FaceColor','k');
alpha(.5);
为我工作,它也帮助解决了我遇到的一些legend
问题。
。提出一个死的问题