MATLAB: Plotting time series axis time labels

time labeltime series

Hi All, I'm able to plot nice 3-d data using mesh or surf. I'm labeling the y axis as time per code block below. It looks great, the only problem is y time axis only displays the time at the mid point of the axis (so only one time displayed). How can I increase the density of the time labels so that I see for example 10 times labeled across the axis? Also, it would be great if this axis/labels auto scales (so if I zoom in and now by displayed full scale time is 10 minutes I'd still see 10 (or some number > 1) of labels for time. Thanks for any feedback!
figure('Name','Spectral Time Series Plot');
ax2=mesh(my3dx,XaxisTime,myd3y);
datetick('y','HH:MM:SS','keepticks','keeplimits');
xlabel('WaveNumber');
ylabel('Absorbance');
ylabel('Sample (time)');
zlabel('Absorbance');
axis tight;

Best Answer

Unfortunately dateticks are not dynamic, meaning if you set the dateticks and then zoom, the ticks don't get updated. You can manually set which ticks you want labeled before calling datetick with 'keepticks', or you can use the dynamic datetick function, which you can get from File Exchange.