MATLAB: Save (Axes) As in GUI

guidematlab gui

Hi,
I am using Matlab GUI (guide) to do some calculation and the results appear as a curve in figure (axes1). I would like to save the figure of this curve.
I created a push button (pushbutton1), and I inserted many different codes the problem with most of them are
  1. It saves the whole GUI window not only the (axes1)
  2. When the save window is opened to wirte the file name/path, if the user click on cancel it will break down and an eeror is appearing
Thx

Best Answer

Updated!
Based on your comment I updated the answer
function pushbutton_SaveasImg_Callback(hObject, eventdata, handles)
Fig1 = figure('Units','normalized','Position',[0.1 0.1 0.8 0.8]);
set(Fig1,'Visible','off');
find_leg = findobj(handles.axes4,'tag','legend'); % axes4 is the name of your Axes
% retrieve the legend strings
legendstr=get(find_leg,'String');
newAxes = copyobj(handles.axes4,Fig1); % Copy the appropriate axes
set(newAxes,'Units','normalized','Position',[0.1 0.1 0.8 0.8]);
% recreate the legend
legend(newAxes,legendstr,'Location','northeast');
% Save as Image file.
[FileName,PathName] = uiputfile( ...
{'*.jpg;*.tif;*.png;*.gif','All Image Files';...
'*.*','All Files (*.*)'});
% 2. When the save window is opened to write the file name/path,
% if the user click on cancel it will break down and an error is appearing
% below code avoid the error you are getting
if isequal(FileName,0) || isequal(PathName,0)
disp('User Clicked Cancel.')
else
disp(['User selected ',fullfile(PathName,FileName),...
' and then clicked Save.'])
saveas(Fig1, FileName);
close(Fig1);
end