Effacer les filtres
Effacer les filtres

Coloring area between two graphs in specific interval

22 vues (au cours des 30 derniers jours)
Christopher
Christopher le 6 Juil 2024 à 11:00
Commenté : Star Strider le 6 Juil 2024 à 18:51
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

Star Strider
Star Strider le 6 Juil 2024 à 14:01
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 à 18:18
Modifié(e) : Christopher le 6 Juil 2024 à 18:18
Your guess was correct and your code works perfectly. Thank you!
Star Strider
Star Strider le 6 Juil 2024 à 18:51
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 Help Center 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