# How to do this temporal plot

9 views (last 30 days)
Elliot Jenkins on 20 Jan 2023
Commented: Chris on 27 Jan 2023
HI,
I have time series data for a parameter for multiple sites like this graph shows. What function do I use? Also, I like making a table of data in excel and then importing it into the script so how is it best to format the table? Thanks
##### 0 CommentsShow -2 older commentsHide -2 older comments

Sign in to comment.

### Accepted Answer

Chris on 20 Jan 2023
Edited: Chris on 27 Jan 2023
Here's one way.
For importing data, perhaps something like data=transpose(readmatrix('filename.xlsx',Range','A2:N2002'));
Empty cells should be imported as NaNs then.
% Generate fake data
data = 2*rand(14,120);
for idx = 1:14
data(idx,1:randi(70)) = nan;
end
% Plot it, beginning at year 1901
xx = 1900+[1:size(data,2)];
interestingPlot(xx,data)
function interestingPlot(xx,data)
yy = 1:size(data,1);
f = pcolor(xx,yy,data);
shading flat
colorbar
% Shift the bins
f.XData = f.XData-.5;
f.YData = f.YData-.5;
ax = gca;
% Shift the axes
ax.XLim = ax.XLim-.5;
ax.YLim = ax.YLim-.5;
% Flip the y axis
ax.YDir = 'reverse';
xlabel('Date')
ylabel('Site')
colormap (flipud(hot))
end
##### 2 CommentsShow NoneHide None
Elliot Jenkins on 25 Jan 2023
Thank you so much!
Chris on 27 Jan 2023
No problem. I edited the code to turn it into a function, in case you need to generate this kind of plot often.

Sign in to comment.

### Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!