Plot deviation of curve as shaded area inside
    15 views (last 30 days)
  
       Show older comments
    
    Sokratis Panagiotidis
 on 22 Jul 2022
  
    
    
    
    
    Commented: Sokratis Panagiotidis
 on 23 Jul 2022
            Hi,
A common question here in this forum is how to plot an area between two curves.
Here's one type of a common answer:
x = transpose(1:100);
y = x.^2;
curve1 = y*1.05;
curve2 = y*0.95;
x2 = [x flipud(x)];
inBetween = [curve1, curve2];
fill(x2, inBetween, 'k', 'LineStyle', 'none');
hold on;
plot(x, y, 'r', 'LineWidth', 2);
This is the result I get:

I used 
alpha(.1)
to make the shaded area transparent.
What I would like to have is the area between those two curves shaded, since I want to show the red curve's deviation without having to use the green lines. Hence why I removed the Linestyle. But I get something like a linear fill between the starting and endpoint of the vectors.
How can I do that without too many lines of code? I'm afraid my laptop is at a certain limit with the actual length of vectors I have to plot (>800.000 values).
Also if you know if and how it's possible to alternate the shaded area like a zebra (white-black-white-black, etc) I'd appreciate if you tell me that!
Thank you!
0 Comments
Accepted Answer
  Star Strider
      
      
 on 22 Jul 2022
        x = transpose(1:100);
y = x.^2;
curve1 = y*1.05;
curve2 = y*0.95;
x2 = [x flipud(x)];
inBetween = [curve1  curve2];
patch([x; flip(x)], [inBetween(:,1); flip(inBetween(:,2))], 'k', 'LineStyle', 'none', 'FaceAlpha',0.25);
hold on;
plot(x, y, 'r', 'LineWidth', 2);
The approach to writing patch calls is to provide a defined area that the function can fill.  Here, that is provided by plotting ‘curve1’ against ‘x’ and then plotting ‘flip(curve2)’ against ‘flip(x)’ completing the region to be filled.  
.
2 Comments
More Answers (1)
  Bjorn Gustavsson
      
 on 22 Jul 2022
        
      Edited: Bjorn Gustavsson
      
 on 22 Jul 2022
  
      Have a look at the file exchange. There there are multiple "shaded-error-plots". For example (without ordering of merit):
I have used a majority of these functions at different times to god result, now I have no memory of why one or the other was preferable.
HTH
3 Comments
See Also
Categories
				Find more on Line Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!