Why I do not get the graphics as I want. It is not a code problem

2 views (last 30 days)
Hi, so my problem is that I do get the graphics in blank. I post the code and the data I am working with to help you understand the problem. Matlab do not tell me I have a problem with the code. I guess is the amount of information or the amount of graphics at the same time(30) but I do not know, I let you tell me. Here is the code :
k = length(DataRaval);
for k = 1:48:1439
nexttile
plot(datenum(DataRaval(k,1)),TempRaval(k,1));
datetick('x','HHPM')
xlabel('Horas'),ylabel('Temperatura en ºC')
title('Temperatura durant el dia 1 de març')
end
and the data used.
If you know the problem and know the solution too please share!

Accepted Answer

DGM
DGM on 1 Dec 2021
You have to plot more than one data point.
load DataRaval2.mat
load TempRaval2.mat
for k = 1:48:numel(TempRaval)
nexttile
vend = min(k+48,numel(TempRaval));
plot(datenum(DataRaval(k:vend,1)),TempRaval(k:vend,1));
datetick('x','HHPM')
xlabel('Horas'),ylabel('Temperatura en ºC')
title('Temperatura durant el dia 1 de març')
end
  7 Comments
DGM
DGM on 2 Dec 2021
There's so little room in the plot box that I'd avoid trying to make an annotation out of it. If you use a supertitle, you can move the common information out of the subplot titles. You could then maybe do something like this.
for k = 1:48:numel(TempRaval)
nexttile
vend = min(k+48,numel(TempRaval));
plot(datenum(DataRaval(k:vend,1)),TempRaval(k:vend,1));
datetick('x','HHPM')
xlabel('Horas')
ylabel('Temperatura (ºC)') % this is a bit shorter
title(sprintf('Març %d: Media %.2fºC', ... % day and avg info
floor(k/48)+1,mean(TempRaval(k:vend,1),'omitnan')))
end
sgtitle('Temperatura dias de març') % overall title
You could also split the title across two lines
title(sprintf('Març %d: \nTemperatura Media %.2fºC', ...
floor(k/48)+1,mean(TempRaval(k:vend,1),'omitnan')))
That would give you more width for text, but it's going to make your plot boxes smaller.
If you really just want to use a text annotation, you could, but you're not going to have much room
for k = 1:48:numel(TempRaval)
nexttile
vend = min(k+48,numel(TempRaval));
plot(datenum(DataRaval(k:vend,1)),TempRaval(k:vend,1));
datetick('x','HHPM')
xlabel('Horas'),ylabel('Temperatura (ºC)')
title(sprintf('Març %d',floor(k/48)+1))
text(0.05,0.95,sprintf('%.2fºC',mean(TempRaval(k:vend,1),'omitnan')),...
'units','normalized','verticalalignment','top')
end
sgtitle('Temperatura dias de març')

Sign in to comment.

More Answers (0)

Categories

Find more on Line Plots in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!