When I save a figure to a file (saveas , hgexport) the figure is re-sized. How do I save a figure to a file that is identical to the screen figure (i.e. not resized)? Why isn't this the default for saving figures?

2 次查看(过去 30 天)
I have changed the figure size using:
figure('OuterPosition',[1 1 scrsz(3)/1.1 scrsz(4)/1.1]);
When I attempt to save the figure to a file (png, bmp, jpg) using saveas or hgexport, the figure size is resized back to default. How do I avoid this?
Using the figure window menu bar and edit>copy figure copies the screen figure to the clipboard without re-sizing. Why isn't this easy to do with Matlab commands?

采纳的回答

Walter Roberson
Walter Roberson 2015-7-20
You probably need to look at the figure PrintPosition and PrintPositionMode properties.
  2 个评论
David
David 2015-7-21
What I am trying to do is very simple -- just save the figure exactly as it is drawn on the screen, just like the GUI-copy-figure command does. It seems to me like the answer should be equally simple. I have looked at the print command and it appears that there are several variables that control scaling, position and resolution. I'm still hoping that there is a simple answer.
David
David 2015-7-21
I did search the help database for paper Position Mode and I found the following. This does solve the problem. Thanks for your help.
set(gcf,'PaperPositionMode','auto') % Use screen size

请先登录,再进行评论。

更多回答(1 个)

Allen Goldstein
Allen Goldstein 2021-1-21
You need to change the Resolution in the factorystyle to 0:
style = hgexport('factorystyle'); % get the style
style.Resolution = 0; % Resolution = 0 meanst use the screen resolution
hgexport(data,'-clipboard',style);

类别

Help CenterFile Exchange 中查找有关 Printing and Saving 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by