Matlab - Guardar figura usando una GUI en matlab

   
Vista:

Guardar figura usando una GUI en matlab

Publicado por Hector (15 intervenciones) el 20/01/2014 19:17:07
Estimados,

tengo un problema al intentar guardar un gráfico en matlab usando una GUI. El comando de guardar me funciona bien, el problema es que me guarda toda la figura y no el gráfico que estoy representando. Es decir, al intentar guardarlo, me hace una foto de la figura como un todo, y lo que quiero realmente es guardar el gráfico. Adjunto mi código agradeciendo la ayuda que me podáis brindar.

Saludos cordiales

Héctor

============================== Aquí comienza el código ========================

function hp_plot

figure_color=[0.39 0.99 0.99];

hFigure= figure('Menubar','none',...
'Units','Pixels',...
'Color',figure_color,...
'Toolbar','none',...
'Name','plot',...
'NumberTitle','off',...
'Position',[1 500 480 283]);


hSave = uicontrol('Parent',hFigure,'Units',...
'normalized','Position',[0.90 0.30 0.12 0.28],...
'Style','pushbutton','String',' Save!',...
'FontSize',10,'Callback',@Save_Callback);

x = 0:0.05:3;
y = exp(-3/4.*(1./3.5.*x));

plot (x,y,'-bs','linewidth',1.4);
xlabel ('x label','FontName','Helvetica','FontSize', 16)
ylabel ('y label','FontName','Helvetica','FontSize', 16)
set(gca,'FontSize',18,'linewidth',1.5)
set(gcf,'color','w');
grid on

function Save_Callback(hObject,eventdata)

[a b] = uiputfile('*.jpg','Save as JPEG');
axesObject2=copyobj(gca,hFigure);
print(gcf,'-djpeg100',[b a]); % ==== Creo que el problema radica en esta liínea!!!!

end

end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos

Guardar figura usando una GUI en matlab

Publicado por Jorge De Los Santos (212 intervenciones) el 20/01/2014 23:29:46
Hola Hector...

Puedes probar creando un objeto "figure" auxiliar en donde copiarás sólo el contenido
del "axes"... te adjunto como quedaría con tal corrección... Saludos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function hp_plot
 
figure_color=[0.39 0.99 0.99];
 
hFigure= figure('Menubar','none',...
    'Units','Pixels',...
    'Color',figure_color,...
    'Toolbar','none',...
    'Name','plot',...
    'NumberTitle','off',...
    'Position',[200 300 480 283]);
 
 
hSave = uicontrol('Parent',hFigure,'Units',...
    'normalized','Position',[0.90 0.30 0.12 0.28],...
    'Style','pushbutton','String',' Save!',...
    'FontSize',10,'Callback',@Save_Callback);
 
x = 0:0.05:3;
y = exp(-3/4.*(1./3.5.*x));
 
haxes=gca;
plot (x,y,'-bs','linewidth',1.4);
xlabel ('x label','FontName','Helvetica','FontSize', 16)
ylabel ('y label','FontName','Helvetica','FontSize', 16)
set(gca,'FontSize',18,'linewidth',1.5)
set(gcf,'color','w');
grid on
 
    function Save_Callback(hObject,eventdata)
        [a b] = uiputfile('*.jpg','Save as JPEG');
        faux=figure('visible','off'); % Crea una figura auxiliar no visible
        copyobj(haxes,faux); % Copia solo el contenido del axes 
        print(gcf,'-djpeg100',[b a]);
        delete(faux); % Borra el objeto auxiliar
    end
end
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Guardar figura usando una GUI en matlab

Publicado por Hector (15 intervenciones) el 21/01/2014 09:52:09
Buenos días Jorge:

El código funciona de maravilla con las modificaciones que ha incluido. Muchísimas gracias por su ayuda y tiempo.

Un saludo

Héctor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar