How can I fill the area under a curve with different colors?
36 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1537220/image.png)
0 Kommentare
Akzeptierte Antwort
Voss
am 12 Nov. 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
0 Kommentare
Weitere Antworten (2)
John D'Errico
am 12 Nov. 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.
0 Kommentare
Siehe auch
Kategorien
Mehr zu 2-D and 3-D Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!