How do you set the focus to a specific uiaxes
28 views (last 30 days)
I am designing an app with the new App Designer format and would like to be able to set the focus of my uifigure to draw on a specific set of uiaxes when I activate a particular callback.
When I attempt to target the axis for plotting using
I get the following error:
Error using axes
Functionality not supported with figures created with the uifigure function.
Error using uiaxes (line 32)
UIAxes cannot be a child of UIAxes.
Is it possible to set the current axes/panel of a uifigure object via their handle? How do I go back add a plot to uiaxes after having created them and subsequently edited other components on the uifigure?
Cris LaPierre on 7 Nov 2018
I would recommend using the plot(ax,___) syntax.
" plot(ax,___) creates the line in the axes specified by ax instead of in the current axes (gca). The option ax can precede any of the input argument combinations in the previous syntaxes."
What I typically do is create a startup function that generates the initial plot
app.p1 = plot(app.UIAxes,x,y1)
Then, when I want to update my line, my app just updates the XData and YData properties of app.p1
% Update line
app.p1.XData = x_new;
app.p1.YData = y1_new;
Of course, this all depends on what type of plot you want to create.
BTW, startup function is a callback of the app canvas. See this page for how to add/create it.