Borrar filtros
Borrar filtros

How can I fill the area under a curve with different colors?

53 visualizaciones (últimos 30 días)
Navid
Navid el 12 de Nov. de 2023
Editada: Matt J el 12 de Nov. de 2023
Hi. I want to inquire about filling the area under a curve with distinct hues. Your assistance with this matter would be greatly appreciated. Thank you.

Respuesta aceptada

Voss
Voss el 12 de Nov. de 2023
Here's one way:
x = 1:100;
y = log(x);
xb = [1 15 55.5 100];
yb = interp1(x,y,xb);
plot(x,y)
hold on
colors = 'gyr';
for ii = 1:numel(xb)-1
idx = (x >= xb(ii)) & (x < xb(ii+1));
x_fill = [xb(ii), xb(ii), x(idx), xb(ii+1), xb(ii+1)];
y_fill = [0, yb(ii), y(idx), yb(ii+1), 0 ];
fill(x_fill,y_fill,colors(ii));
end

Más respuestas (2)

John D'Errico
John D'Errico el 12 de Nov. de 2023
Simple.
Just use fill (or patch) to fill THREE patches, each with the desired color. How can it be any simpler?
Or, you could build 3 polyshapes, then plot then with the desired color. Again, quite easy.

Matt J
Matt J el 12 de Nov. de 2023
Editada: Matt J el 12 de Nov. de 2023
One way:
x=0:0.01:4;
y=1-exp(-x);
color={'g','y','r'};
edges=0:4;
for i=1:3
r=(edges(i)<=x)&(x<=edges(i+1));
area(x(r), y(r), FaceColor=color{i}); hold on
end; hold off

Categorías

Más información sobre Surface and Mesh Plots en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by