As reply to your comment to Image Analysts answer:
You can fix this by the shown method to set 'NextPlot' to 'add':
h = axes('tag', 'theTag', 'NextPlot', 'add');
Then new object added by so called high-level graphic routines do not clear formerly created objects and do not reset some properties of the parent object anymore. I create all AXES objects with this property and whenever I want an already existing object to be deleted, I do this explicitly. The less I let Matlab guess what I want, the less chances Matlab has to make mistakes.
I follow the same principle for low-level functions also: The high-level function plot() creates a line object. calling line directly is faster, has less side-effects, but it is less convenient e.g. for setting markers. But even then specifying the axes handle as 'Parent' property has advantages instead of relying, that the wanted axes is the current object: When a TIMER callback activates another axes, the results look very confusing.