How can I fill the area under a curve with different colors?
64 ビュー (過去 30 日間)
古いコメントを表示
採用された回答
Voss
2023 年 11 月 12 日
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 件のコメント
その他の回答 (2 件)
John D'Errico
2023 年 11 月 12 日
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 件のコメント
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!