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

12 visualizaciones (últimos 30 días)
Alon Rozen
Alon Rozen el 18 de Dic. de 2016
Comentada: Alon Rozen el 24 de En. de 2017
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

Respuestas (2)

Jan
Jan el 18 de Dic. de 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 comentarios
Jan
Jan el 19 de Dic. de 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 el 23 de En. de 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

Iniciar sesión para comentar.


Walter Roberson
Walter Roberson el 23 de En. de 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