Coloring area between two graphs in specific interval

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

 Réponse acceptée

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 commentaires

Christopher
Christopher le 6 Juil 2024
Modifié(e) : Christopher le 6 Juil 2024
Your guess was correct and your code works perfectly. Thank you!
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots dans Centre d'aide et File Exchange

Produits

Version

R2023b

Community Treasure Hunt

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

Start Hunting!

Translated by