area(x,y)
dovrebbe fare il trucco. Non sono sicuro che quella classe abbia una proprietà FaceAlpha.
MODIFICA: Sfortunatamente, la classe area non ha una proprietà FaceAlpha. Ma si può ovviare a questo e modificare la patch direttamente:
x=0:pi/10:2*pi;
y=x.^2;
H=area(x,y);
h=get(H,'children');
set(h,'FaceAlpha',0.5); %#Tada!
EDIT2: Per ombreggiare l'area sopra la curva, è possibile utilizzare un secondo terreno area con un riempimento bianco. È una specie di kludge, ma dovrebbe funzionare. Si riparte:
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
o edificio sulla soluzione di Jason S, utilizzare l'ingresso baseval per ombreggiare di sopra della curva:
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
Mi sto ancora abituando ai modi di Matlab, quindi scusami se questa semplice domanda. Ma dove imposti il colore in quelle 3 linee? E per esempio, potresti ombreggiare un'area sopra la curva con quel principio? – Rook
area di ombra sopra la curva: non c'è bisogno di fare kludge. Vedi la mia risposta. –
@Jason S: buon punto. Non sapevo che avresti potuto stabilire il punto di partenza sopra i punti della curva! +1 – Doresoom