Fill light gray color between two horizontal lines in a plot?

73 次查看(过去 30 天)
I want to fill light gray color between two horizontal lines such that I can plot the horizontal lines as dashed dotted ? Please help me regarding this issue. I am writing below the code
x=[1:10];
y=[1:10];
figure(1);clf;
plot(x,y,'b')
hold on
plot([1,10],2*[1,1],'--.k')
hold on
plot([1,10],4*[1,1],'--.k')

采纳的回答

Star Strider
Star Strider 2023-2-7
To plot a ‘dash-dot¹ line requires a slightly different LineStyle definition —
x=[1:10];
y=[1:10];
figure(1)
plot(x,y,'b')
hold on
patch([x, flip(x)], [ones(size(x))*2, ones(size(x))*4], [1 1 1]*0.05, 'Edgecolor','none', 'FaceAlpha',0.25)
plot([1,10],2*[1,1],'-.k')
plot([1,10],4*[1,1],'-.k')
hold off
Plotting the patch as dash-dotted is difficult, however it is possible.
.
  3 个评论
Afiq Azaibi
Afiq Azaibi 2023-3-17
In addition to Star Strider's solution, starting in R2023a you can use the xregion and yregion functions:
plot(1:10);
yregion(2, 5, 'EdgeColor', 'black');
You can update the LineStyle, FaceAlpha, and other visuals about the object. However, the default EdgeColor is 'none'.

请先登录,再进行评论。

更多回答(2 个)

Arif Hoq
Arif Hoq 2023-2-7
x=[1:10];
y=[1:10];
figure(1);clf;
plot(x,y,'b')
hold on
plot([1,10],2*[1,1],'--.k')
hold on
plot([1,10],4*[1,1],'--.k')
x = [1 10 10 1];
y = [2 2 4 4];
patch(x,y,[.5 .5 .5])
  1 个评论
Benjamin Kraus
Benjamin Kraus 2023-2-7
Using patch as @Arif Hoq suggested is best, but you may also want to set the FaceAlpha and EdgeColor like this:
x=[1:10];
y=[1:10];
figure(1);clf;
plot(x,y,'b')
hold on
plot([1,10],2*[1,1],'--.k')
hold on
plot([1,10],4*[1,1],'--.k')
x = [1 10 10 1];
y = [2 2 4 4];
patch(x,y,'k','FaceAlpha',0.5,'EdgeColor','none')
xlim([1 10])

请先登录,再进行评论。


Sarvesh Kale
Sarvesh Kale 2023-2-7
Hi ,
You can add the following extra line to your code
rectangle("Position",[1 2 10 2],"FaceColor",[150/255 150/255 150/255],"LineStyle","none");
This will shade the required portion with gray color, However I was not able to toggle its visibility so that the underlying slanted straight line is also visible.

类别

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