How to add gray bands in a plot

16 views (last 30 days)
I have a figure with multiple subplot with the same time series, I would like to add a gray band on the x axis every year, do you have any idea?
  2 Comments
Tiziana Lazzarina Zendrini
Yes, sorry for the unclear explanation, I would like to do something like this for each subplot and not just to set the XGrid on:
thank you very much for your reply.

Sign in to comment.

Answers (1)

DGM
DGM on 7 Feb 2023
Edited: DGM on 7 Feb 2023
Here's my interpretation. I'm assuming you're using datetime for the xdata, so
% some fake data
t1 = datetime(2013,11,1,8,0,0);
t2 = datetime(2020,11,5,8,0,0);
t = t1:caldays(5):t2;
y = rand(1,numel(t))+10;
% specify desired yaxis range
yaxrange = [9 12];
% plot the area under a square wave
yrbk = mod(year(t),2); % every other year
yrbk = abs(diff(yaxrange))*yrbk+min(yaxrange); % rescale on y
area(t,yrbk,min(yaxrange),'facecolor',0.9*[1 1 1],'edgecolor','none')
% plot the data on top of it
hold on
plot(t,y)
ylim(yaxrange)

Community Treasure Hunt

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

Start Hunting!