area(x,y)
should do the trick. I'm not sure if that class has a FaceAlpha property though.
EDIT: Unfortunately, the area class doesn't have a FaceAlpha property. But you can work around that and edit the patch directly:
x=0:pi/10:2*pi;
y=x.^2;
H=area(x,y);
h=get(H,'children');
set(h,'FaceAlpha',0.5); %#Tada!
EDIT2: To shade the area above the curve, you could use a second area plot with a white fill. It's kind of a kludge, but it should work. Starting over:
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
or building on Jason S's solution, use the baseval input to shade above the curve:
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
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…