Opening stored figures directly in GUI
Mostrar comentarios más antiguos
I've stumbled upon this problem which I thought would be easy to solve, but my limited experience with Matlab forced me to seek for help.
I have a figure stored in a .fig file, and I have a GUI with an 'axes' object. I would like to open the stored figure file and display the figure in the axes of the GUI. What is the best way to achieve this?
Thank you very much for your help!
Respuestas (2)
Sean de Wolski
el 3 de Jul. de 2012
Editada: Sean de Wolski
el 3 de Jul. de 2012
1 voto
This is not possible. An axes cannot be a container for a figure. You could load the figure, take a snapshot of it ( getframe or print ) and then display this as an image in the axes but all functionality will be gone.
What are you trying to do? Perhaps we could help you come up with a nicer solution.
1 comentario
Lipa
el 4 de Jul. de 2012
Kevin Claytor
el 3 de Jul. de 2012
You could transfer the data over reasonably fast with something like;
% Example of transfering data from one figure to another
f1 = figure; % The figure we want to transfer to
h2 = subplot(3,3,4); % The axes we want to transfer to
od = open('untitled.fig'); % Load our saved figure
%get(get(x,'CurrentAxes'))
% This command displays all the options we can
% transfer over, for this example, I'll just transfer the data
datahandles = get(get(x,'CurrentAxes'),'Children');
for ii = 1:length(datahandles)
set(datahandles(ii),'Parent',h2);
end
% Close the other figure
close(od)
You'll have to tweak it to transfer other properties (title, labels, etc) over, but that should get you started.
4 comentarios
Lipa
el 4 de Jul. de 2012
Cheng, Nestic
el 22 de Mzo. de 2016
I have the exactly same problem about this...I can easily open a .fig file with popping out another Figure window,but hardly put the .fig file into a axes(in GUI) that already exist. I've tried to use "axes(handles.axes_Copy1)" before I open my .fig file and it does not work. In this answer using "h2 = subplot(3,3,4);" to point to the axes we want to transfer to,but is there a way to transfer to "the axes in GUI"? really confusedˊˋ
Jan
el 22 de Mzo. de 2016
@Cheng: As you found out, you cannot open a the contents of a fig file in an axes object. You can copy axes objects to axes objects using copyobj.
Cheng, Nestic
el 29 de Mzo. de 2016
Thanks for reply!!! I've got some further question about using copyobj these days,try to copy axes objects to axes objects just as your mention(still failed :P) Therefor I write another Post to ask more about this! http://www.mathworks.com/matlabcentral/answers/275954-problem-with-transfer-information-from-a-axes-to-another-in-gui-using-copyobj
Categorías
Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!