Color the area between two plots

조회 수: 121 (최근 30일)
Ale_798
Ale_798 2023년 9월 11일
답변: Nathan Hardenberg 2023년 9월 11일

I'm trying to color the area between two plots with the "fill" function. I was actually able to do it, but for some reasons the area is just filled with some vertical black lines instead of being colored as it should. How can I fix this?

  댓글 수: 4
Sam Chak
Sam Chak 2023년 9월 11일
@Ale_798, Can you address this error message so that we can duplicate the plot in your image?
x1 = [x' ; flipud(x')];
Unrecognized function or variable 'x'.
area = [plot1 ; flipud(plot2)];
fill(x1, area, 'b');
dpb
dpb 2023년 9월 11일
Looks like your areas are between points sequentially between the two curves, not along the horizontal axes...
We need the full code to regenerate the figure in order to tell...pictures and incomplete code with undefined variables aren't enough to go on without a lot of extra work..."Help us help you!"

댓글을 달려면 로그인하십시오.

답변 (1개)

Nathan Hardenberg
Nathan Hardenberg 2023년 9월 11일
One way to achive this is like this:
x1 = 1:0.05:2; % graph 1
y1 = exp(x1) + 1;
x2 = 1:0.05:2; % graph 2
y2 = exp(x2);
figure(1); hold on
fill([x1, flip(x2)], [y1, flip(y2)],'y') % plot filled area
plot(x1,y1,x1,y2, "LineWidth",3) % plot both graphs
Note that the second graph is flipped while plotting the area to continue the polygon in the other direction. For more Info please check the fill() function documentation.

카테고리

Help CenterFile Exchange에서 Polygons에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by