I want to shade the area between two yline:
p1 = yline(5,'-','color',[177 177 177]./255,'LineWidth',2);hold on
p2 = yline(4,'-','color',[177 177 177]./255,'LineWidth',2);hold on
x = 0:2200;
x2 = [x, fliplr(x)];
inBetween = [p1, fliplr(p2)];
fill(x2, inBetween, 'gray');hold on;
Since x2 and inbetween are not in the same size, my code does not work. How can I change it to gt the shaded area?
Thank you for any help

 Réponse acceptée

Walter Roberson
Walter Roberson le 30 Août 2022

1 vote

You cannot fill between yline() or xline().
yline() and xline() are reference lines that cross the entire axes and logically continue to +/- infinity. If you pan or zoom, yline() and xline() continue to be shown even if there is no data in the new area.
fill(), however, is always implemented as a closed bounded area -- something that can zoom or pan away.
I suggest you
fill(x([1 end end 1 1]), [4 4 5 5 4], 'gray')

3 commentaires

Ham Man
Ham Man le 30 Août 2022
does not work:
Error using fill
Not enough input arguments.
Walter Roberson
Walter Roberson le 30 Août 2022
Modifié(e) : Walter Roberson le 30 Août 2022
x = sort(rand(1,20));
fill(x([1 end end 1 1]), [4 4 5 5 4], [.8 .8 .8])
Ham Man
Ham Man le 31 Août 2022
Thank you so much Walter! It works well

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by