MATLAB: Plot a timeseries in a group

plot

I have an hour of data which is split into 15 mins- so 4 groups of data. Each 15 min period has been calculated differently and I want to show the outcomes of the various analysis methods. So 4 groups with 3 different bar charts in this groups?
I have tried some code but nothing seems to work?? Could anyone help would be very much appreciated.
I am trying to copy the plot attached.

Best Answer

You can try this code. I used some messy dynamic field naming to do the plots. Will clean this up tomorrow, but too tired right now.
data=load('matlab_help.mat')
ax1=axes('xscale','log','color','none');
ax2=axes('xscale','log','ycolor','none','color','none');
ax3=axes('xscale','log','ycolor','none','color','none');
ax4=axes('xscale','log','ycolor','none','color','none');
for j=2:4;
axes(ax1);hold on
plot(data.(['psWc_15_',(num2str(j))])(1:end-1,1), 0.5*cumsum((data.(['psWc_15_',(num2str(j))])(1:end-1,4)+data.(['psWc_15_',(num2str(j))])(2:end,4)).*diff(data.(['psWc_15_',(num2str(j))])(:,1))).*86400,'r');
axes(ax2);hold on
plot(data.(['psWc_16_',(num2str(j))])(1:end-1,1), 0.5*cumsum((data.(['psWc_16_',(num2str(j))])(1:end-1,4)+data.(['psWc_16_',(num2str(j))])(2:end,4)).*diff(data.(['psWc_16_',(num2str(j))])(:,1))).*86400,'r');
axes(ax3);hold on
plot(data.(['psWc_17_',(num2str(j))])(1:end-1,1), 0.5*cumsum((data.(['psWc_17_',(num2str(j))])(1:end-1,4)+data.(['psWc_17_',(num2str(j))])(2:end,4)).*diff(data.(['psWc_17_',(num2str(j))])(:,1))).*86400,'r');
axes(ax4);hold on
plot(data.(['psWc_18_',(num2str(j))])(1:end-1,1), 0.5*cumsum((data.(['psWc_18_',(num2str(j))])(1:end-1,4)+data.(['psWc_18_',(num2str(j))])(2:end,4)).*diff(data.(['psWc_18_',(num2str(j))])(:,1))).*86400,'r');
end
set(ax1,'position',[.10 .2 .2 .5])
set(ax2,'position',[.30 .2 .2 .5])
set(ax3,'position',[.50 .2 .2 .5])
set(ax4,'position',[.70 .2 .2 .5])
linkaxes([ax1 ax2 ax3 ax4],'xy')
h=get([ax1 ax2 ax3 ax4],'children')
h=[h{:}];
set(h(1,:),'color','r')
set(h(2,:),'color','b')
set(h(3,:),'color','k')
ax5=axes('ycolor','none','color','none');hold on
set(ax5,'position',[0.1 0.1 0.8 0.1])
axes(ax5)
t=minutes(0):minutes(1):minutes(60);
t.Format='hh:mm';
y=ones(size(t))
plot(t,y,'color','none')
xlim([minutes(0) minutes(60)])
Related Question