Problem using copyobj

I have created a GUI with 2 axes. The code I generated plots data onto both axes however what I want to do is export these 2 axes onto a new figure window. Here is the following code I am using:
h1 = handles.inplane_graph;
h2 = handles.outofplane_graph;
copyobj(h1,figure(1));
copyobj(h2,figure(2));
Both graphs are copied perfectly into new figure windows, however the position of the graphs are not centered and the graphs themselves are small (the same size as they appear in the GUI). I want the graphs to be standard size and centered. Can someone please help?

 Respuesta aceptada

Walter Roberson
Walter Roberson el 5 de Dic. de 2011

0 votos

copyobj() copies everything, including the Position information. You can set() the Position after the copy.

3 comentarios

John
John el 5 de Dic. de 2011
I have tried setting a new position by opening a new figure window, putting axes on that figure, then using "get" to obtain the position of the axes set. Then I use copyobj and set the graph to the positions I obtained using the "get" object however, I couldn't even see the graph after doing so. What would you recommend? Thanks for the help!
Walter Roberson
Walter Roberson el 5 de Dic. de 2011
get() the 'Units' in both cases: if you are using different Units then the positions would be very different.
You can set the axes position in normalized units:
nh1 = copyobj(h1,figure(1));
nh2 = copyobj(h2,figure(2));
set([nh1,nh2], 'Units', 'normalized', 'Position', [.2 .2 .6 .6]);
The .2 and .6 were chosen arbitrary to leave a margin of 1/10 of the figure area on all sides of the graph.
John
John el 5 de Dic. de 2011
Thank you so much. The units were indeed what was causing the problem.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Graphics Object Programming en Centro de ayuda y File Exchange.

Productos

Preguntada:

el 5 de Dic. de 2011

Community Treasure Hunt

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

Start Hunting!

Translated by