Coloring area between two graphs in specific interval
1 view (last 30 days)
Show older comments
Hi,
I have a plot that looks as shown and would like to color specific areas of it. In the blue graph, I would like shade the area of the minimum, so roughly between 100 < x < 115 and up to y = 0.45 (the area below the baseline).
I had no success doing this using a linear function and the inBetween and fill functions.
Thanks a lot,
Chris
0 Comments
Accepted Answer
Star Strider
on 6 Jul 2024
It would help to have the code, or at least a file thtat I can get the information from.
Lacking that, a bit of creativity is in order —
x = linspace(-50, 175, 500).'; % Assume Column Vectors
y = -0.45 - 2*exp(-(x-107.5).^2/4)+(-0.0005*x);
Lv = (x > 100) & (x < 115);
Lvn = find(Lv);
ytop = interp1(x([Lvn(1) Lvn(end)]), y([Lvn(1) Lvn(end)]), x(Lvn));
figure
plot(x, y)
hold on
patch([x(Lv); flip(x(Lv))], [y(Lv); ytop], 'b', 'FaceAlpha',0.5, 'EdgeColor','none')
hold off
grid
xlim([min(x) max(x)])
It is a bit difficult to understand what you want shaded. This is my best guess.
.
2 Comments
More Answers (0)
See Also
Categories
Find more on 2-D and 3-D 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!