MATLAB: App Designer: Subplots in uiplane

app designerMATLAB

I want to plot in uipanel in App Designer and crated subplots as shown below. I want to plot in the uipanel and I want the title of the panel to change to the type of analysis I am performing. For example, I have a function that performs Transform domain analysis and display the results in subplots and change the title of the panel. I also have another function subplots are displayed in the same uipanel but with different titles. All this works fine.However, the plots are displayed in a new App window. For example, I have a function called Plots (shown below) which is connected to the App using a callback function. When this function is called, it always plots results in a new App window. I want the results to show in an App from which the function is called.
How could I prevent App designer from opening a new window?
function [] = Plots(inputData)
myMainGUICopy = MainGUI;
ResultsPanel = myMainGUICopy.ResultsPanel;
%
ResultsPanel.Title = 'Transform Domain Representation of Input Data';
%Create Subplots
ax1 = subplot(2,3,1,'Parent',ResultsPanel);
ax2 = subplot(2,3,2,'Parent',ResultsPanel);
ax3 = subplot(2,3,3,'Parent',ResultsPanel);
ax4 = subplot(2,3,4,'Parent',ResultsPanel);
ax5 = subplot(2,3,5,'Parent',ResultsPanel);
ax6 = subplot(2,3,6,'Parent',ResultsPanel);
...
plot(ax1,...)
plot(ax2,...)
...
plot(ax6,...)

Best Answer

Since this isn't your code, I don't have to worry about sounding insulting when I say that this code is a mess! :)
I wouldn't use subplot() to create the axes in an app. Instead, look into tiledlayout which returns a tiled layout object used to define the number and arrangement of axes within the panel.
For example,
% Clear existing axes on panel and set new layout as 2x2
% The axis will not appear yet. app.Panel is the UI panel handle.
t = tiledlayout(app.Panel, 2, 2);
% Access first subplot-tile for plotting
ax = nexttile(t);
plot(ax, ___)
% Access next subplot-tile for plotting
ax2 = nexttile(t);
plot(ax2, ___)