# How to color an area at plot surface...

9 visualizaciones (últimos 30 días)
Masoud Ghanbari el 17 de Abr. de 2013
How can i color the area between 2 functions like
f(x)=x^2
g(x)=-x^2+1
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Thomas el 18 de Abr. de 2013
I found a better way... try
x=1:10;
f=x.^2;
g=x.^2+1;
patch([x x(end:-1:1)], [f g(end:-1:1)],'y')
This sets up x=1...10, g=x² and f=x²+1 and then plots the area between the curves as a yellow polygon/patch. Compare the matlab help for patch.
Here i simply draw all points forf first in positive x direction and then jump to the last point of g and draw the points of g backwards from x=10...1. All in all a complete polygon. Btw, 'y' is the color yellow.
##### 3 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Thomas el 18 de Abr. de 2013
i dont understand what you mean by f-g<2. You have to e.g. put the vector with the upper border curve values in f and the lower border data into g (or the other way round, it doesnt matter) and then call the patch command.
Masoud Ghanbari el 19 de Abr. de 2013
Thanks... Hope to support me at my further problems

Iniciar sesión para comentar.

### Más respuestas (3)

Thomas el 17 de Abr. de 2013
You could use sth like
area(g);
hold on;
area(f);
and then select f's fill color to be the backgroud color.
Of coures this only works as long as f<g for all x.
If this is not the case you could first do
upperCurve = max(f,g)
lowerCurve = min(f,g)
and then plot upperCurve and lowerCurve as stated above. If they are sufficiently high-res compared to your plot resolution it might be sufficient, however it wouldn't be "clean". Maybe there is another solution anyone can bring up...
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Masoud Ghanbari el 18 de Abr. de 2013
hi
It does not works
would you please bring me the full code
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

Muruganandham Subramanian el 18 de Abr. de 2013
hi,
for e,g.
x=[1 2 3 4 5];
for i=1:numel(x)
f(i)=x(i)^2;
g(i)=-x(i)^2+1;
end
plot(x,f,x,g)
hold on;
area(f-g)
hold on;
area(g-f)
Do you expecting like this?
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

### Categorías

Más información sobre Graphics Object Properties en Help Center y File Exchange.

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by