The HandleVisibility property of the figure window (for the GUI) and the axes is set to Callback by default. Thus, these handles will only be visible in a callback routine.
When you click the button and start the timer object, the first call to the TimerFcn will be within the callback and hence the axes in the GUI will be visible to it. The TimerFcn can plot into the axes in the GUI. However, subsequent plots from the TimerFcn are not from a callback. Hence, a new figure window is generated instead of plotting into the same axes in the GUI.
As a workaround, to be able to plot into the same axes, set the HandleVisibility property for the GUI (which can be obtained by double clicking anywhere on the GUIDE window except for a UIControl object) and for the axes to ON.
Best Answer