shade area between two yline

40 次查看(过去 30 天)
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

采纳的回答

Walter Roberson
Walter Roberson 2022-8-30
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 个评论
Walter Roberson
Walter Roberson 2022-8-30
编辑:Walter Roberson 2022-8-30
x = sort(rand(1,20));
fill(x([1 end end 1 1]), [4 4 5 5 4], [.8 .8 .8])
Ham Man
Ham Man 2022-8-31
Thank you so much Walter! It works well

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2022-8-30

类别

Help CenterFile Exchange 中查找有关 Labels and Annotations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by