shade area between graphs
조회 수: 2,971(최근 30일)
표시 이전 댓글
I want to shade the area between these graphs

but this certainly does not do the trick:
fill([t t(end:-1:1)],[y1 y2(end:-1:1)],'y')
I also downloaded and tried "jblill"
but that did not seem to amend the outcome so far
댓글 수: 2
Image Analyst
2017년 12월 15일
Yes, there were answers below, one of which he accepted though both should work.
채택된 답변
Image Analyst
2015년 2월 28일
Try using fill() instead of area():
x = 1 : 300;
curve1 = log(x);
curve2 = 2*log(x);
plot(x, curve1, 'r', 'LineWidth', 2);
hold on;
plot(x, curve2, 'b', 'LineWidth', 2);
x2 = [x, fliplr(x)];
inBetween = [curve1, fliplr(curve2)];
fill(x2, inBetween, 'g');

댓글 수: 11
추가 답변(3개)
Star Strider
2015년 2월 28일
편집: Star Strider
2015년 2월 28일
Try this:
x = linspace(0,10*pi);
y1 = sin(x);
y2 = cos(x);
figure(1)
plot(x, y1)
hold on
plot(x, y2)
patch([x fliplr(x)], [y1 fliplr(y2)], 'g')
hold off
Experiment with your data to get the result you want.
Javier Montalt Tordera
2019년 4월 12일
The syntax for the above problem would be:
shade(t,y1,t,y2,'FillType',[1 2;2 1]);
The FillType option specifies that the area between lines 1 and 2 should be filled, whether 1 is above 2 or the other way round.
댓글 수: 5
DETELINA IVANOVA
2018년 4월 4일
I am using this last suggestion by Star Strider to plot error bar shading using patch, but in some cases I get in addition to the shading straight lines (see the third plot at the bottom in the attached figure) I have eliminated the points with NaNs. It seems ok in the other two cases (the upper plots in the same figure). What can be causing this?
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!