How to switch between one plot and two subplots on a GUI?

12 visualizzazioni (ultimi 30 giorni)
Hi all,
I created a GUI, using GUIDE, and in it I placed an axes. I have no problem to reach this axes and plot whatever on it. In some cases I want to use two subplots where this axes is located. I tried it and the original axes was deleted while two others, one for each subplot, were created. Now I can't return to the one axes configuration because it is gone.
What is the best approach to be able to switch between one plot and two subplots at the same place where the original axes is located?
Thanks,
Alon

Risposte (2)

Jan
Jan il 18 Dic 2016
SubPlotH = [subplot(2,1,1), subplot(2,1,2)];
AxesH = axes;
for k = 1:10
if rem(k, 2) == 1
set(SubPlotH, 'Visible', 'off');
set(AxesH, 'Visible', 'on');
else
set(SubPlotH, 'Visible', 'on');
set(AxesH, 'Visible', 'off');
end
pause(1);
end
  3 Commenti
Jan
Jan il 19 Dic 2016
No, the axes object is not deleted, "when you plot on the subplots". This deleting must have a cause. So please use the debugger at first to find the reason of the deleting, or at least the line, where it is deleted. Then post the relevant code.
Alon Rozen
Alon Rozen il 23 Gen 2017
Hi Jan,
I am back to this problem: Suppose the axes is kept in the 'handle' of the GUI as 'handles.My_Axes', and I have a function named 'Create_Subplots' to create two subplots instead.
After using:
H = handles.My_Axes;
Create_Subplots(H);
inside 'Create_Subplot' I have the code:
function Create_Sublpot(H)
set(H,'Visible','off');
H1 = subplot(1,2,1);
...
end
Now I put a break point on the line that create the subplot H1. before this line H is still an existing axes. After executing this line i get for H:
H: 1x1 matlab.graphics.axis.Axes = handle to deleted Axes
How can I avoid this?
Alon

Accedi per commentare.


Walter Roberson
Walter Roberson il 23 Gen 2017
subplot always deletes any axes that it overlaps. You need to axes() up new axes. Or, design three axes in GUIDE and hide what is not in use, never calling subplot.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by