How can I fill the area under a curve with different colors?
    조회 수: 30 (최근 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!






