The MATLAB command datetick('x') will not automatically update date ticks if a figure is resized, zoomed or panned. datefig is a class definition that creates a MATLAB figure with ResizeFcn, zoom and pan callbacks that call datetick('x','keeplimits') for all axes with plots in a figure.
It can work with any plotting function, but will not show the date ticks until the figure is resized or the axes are zoomed/panned the first time. I am sure there is an axes-creation callback, but I could not find it easily. I will try to add it in a future version. Since it uses the MATLAB function datetick, it will not make sense unless the abscissa is a MATLAB serial date number.
There are overloaded plot, scatter and plotyy functions that put date ticks on the x-axis. If a datefig class object if specified as the first object, then it will plot in that figure, otherwise it will create a datefig object. The datefig class object is an optional second output. The overloaded methods are similar to the MATLAB functions. However, I'm not sure what it will do with AX as an argument. Also if the xdata is not a MATLAB serial date number then it will probably output garbage on the x-axis.
h = datefig;
This is more generic alternate to using the MATLAB builtin timeseries class.
fix plot inputs, add overloaded method for scatter, add overloaded method for plotyy, fix errors with zoom/pan