Effacer les filtres
Effacer les filtres

What is the best way to create a figure from an existing axes in a GUI?

1 vue (au cours des 30 derniers jours)
Alon Rozen
Alon Rozen le 20 Déc 2016
Modifié(e) : Jan le 26 Déc 2016
Hi all,
Using GUIDE I created a GUI and in it I placed an axes where I plot some graphs. Of course, the size of the plot area is fixed to the size of the axes I created while constructing the GUI. From time to time there is a need to plot the same data on a figure (outside the GUI) where I can change size or just keep it when I plot a different graph on the same axes on the GUI. I know that I can create a figure, recalculate whatever was calculated for the fixed graph and direct the plot to the new figure.
My question is: is there a simple way to direct the data in the existing GUI axes to a newly created 'fig' without re-calculating the data?
Thanks,
Alon

Réponse acceptée

Jan
Jan le 20 Déc 2016
Modifié(e) : Jan le 26 Déc 2016
This is a job for copyobj:
function YourGUI
FigH = figure('Title', 'The GUI');
AxesH = axes('Parent', FigH, ...
'ButtonDownFcn', @AxesCallback);
plot(1:10, rand(5,10), 'Parent', AxesH);
end
function AxesCallback(AxesH, EventData)
% [EDITED] Reject single left clicks:
DlgH = ancestor(AxesH, 'figure');
SelectionType = get(DlgH, 'SelectionType'); % Or use the EventData
if strcmpi(SelectionType, 'normal')
return;
end
newFigHJ = figure;
newAxesH = copyobj(AxesH, newFigH); % [EDITED, Arguments swapped]
% [EDITED] Adjust position:
set(newAxesH, 'Units', 'normalized', 'Position', [0.1, 0.1, 0.8. 0.8]);
end
The UIContextMenu of the figure or of the axes, or a specific button under the axes would be a nice method to trigger the exprt also.
  5 commentaires
Jan
Jan le 21 Déc 2016
@Alon: See [EDITED] in my answer above.
Alon Rozen
Alon Rozen le 21 Déc 2016
Thanks Jan :)
You solved it all!! The only remark I have is that the order of the variables inside 'copyobj' should be reversed.
Thank you so much!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Specifying Target for Graphics Output dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by