7 views (last 30 days)

Show older comments

I have a plot where the x axis is the hour of the day. Right now the xaxis starts at 0 and ends at 24. Instead, I want to plot the daytime hours before the nighttime hours so that it starts at x=8 and ends at x=7 so that I can view all the nighttime data together. Can someone tell me how to set up the plot this way?

Thank you!

This is my code right now:

f1=figure(1)

hold on; box on;

yyaxis left

yline(0)

bar(1:24,mfbin,'facecolor',gray);

errorbar(1:24,mfbin,sdfbin,'k.','linewidth',e)

ylabel('Filtered Flux (mmol/m^2/h)')

ylim([-70 70])

yyaxis right

plot(1:24,mMPARbin,'b.','markersize',30);

yline(100,'b')

% errorbar(1:24,mMPARbin,sdMPARbin,'k.','linewidth',e);

ylabel('PAR')

ylim([-1000 1000])

xlim([0 24])

set(gca,'fontsize',18)

ax=gca;

ax.YAxis(1).Color='k'

ax.YAxis(2).Color='b'

Walter Roberson
on 16 Aug 2020

That only makes sense if the data is valid for 24 hours starting at 8am, not if the data is for one particular calendar day.

If the data is valid for 24 hours, then take

H = datetime('today','Format', 'HH') + hours(8:24+7);

errorbar(H, circshift(mfbin,-7), circshift(sdfbin,-7), 'k.', 'linewidth', e)

and similar.

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

Start Hunting!