I am missing a few functions or can't find them:
-How can I make the ticklabels appear on the outisde of the axis instead inside?
-Is it possible to define the minor ticks separately?
-Is it possible to set multiple axis limits (to make it appear like multiple small axis instead of one long axisLine)
@Mikael: Thank you for the kind feedback. You can try Christian's modification to not display negative arrows. See his comment from 05 Jan 2013 for a link. (Disclaimer: I have not tested this code). I'll think about adding this functionality in my next update, but I'll have to put some thought into the best way to implement it.
Adding grid lines has been on my todo list for a while. Hopefully I'll have some time in the next month or two to work on it. Right now, if you want grid lines, you have to un-hide the parent axes (oa.HideParentAxes = 'off') and turn the grid on as usual. Unfortunately, you end up with the parent axes' axis lines, ticks and tick labels as well - it gets kind of cluttered.
@Christian: Thanks for the kind feedback. I'll take a look at your modified code and consider adding it as an option in my next update.
@cpas1940: If you want to change the label rotation, you can access the handles of the labels in oa.hXLabel, oa.hYLabel, etc. Then you can set the 'Rotation' property as well as any other text properties directly. I'm not sure what you mean by 'having the ylabel centered at (0,0)'. If one of the ylabels were located at (0,0) it would no longer be a label on the end of the axis (assuming oaxes is centered at (0,0) and the limits are [-a +b]). If you are talking about having a rotated label be centered around the y axis line, you can play with the 'HorizontalAlignment' and 'VerticalAlignment' text properties of the labels. Here is an example:
oa = oaxes;
% (The negative-axis label is now rotated by 90 degrees, but not centered correctly)
% (Now it is centered and no longer overlapping the end of the axis line)
Excellent job! Question, though: I would like to get rid of the negative arrows. How can I do that? There doesn't seem to be any property that can be set to achieve that. I am not fluent enough in Matlab to identify where in the code they are actually generated.