How to save a figure that is larger then the screen?

조회 수: 89 (최근 30일)
Peter
Peter 2012년 5월 3일
댓글: Tim Keiper 2020년 4월 22일
Hello,
i'm trying to save a 53x53 cm sized figure to an .eps-file. This results in a file containing only the on screen visible part of the figure. I'm using the Save As Option of the figure's menubar.
Example-Code:
plot(1:50,1:50);
set(gca, 'units', 'centimeters');
set(gca, 'position', [3 3 53 53]);
Thx, Peter

채택된 답변

Daniel Shub
Daniel Shub 2012년 5월 3일
You cannot make figures larger than the screen size and if an axis does not fit in a figure, it gets truncated.
One possibility is to reduce the ScreenPixelsPerInch root property
set(0, 'ScreenPixelsPerInch', x)
where x is chosen so that MATLAB will think your monitor has both a width and height greater than or equal to 53 cm. You probably want to add some padding also for task and menu bars.
I have no idea how this will affect the output.
  댓글 수: 2
Peter
Peter 2012년 5월 3일
Didn't work fully.
I used x=40.
It helped me to fit the too large axes on the screen.
But if this are the sections of the figure:
[1] [2]
[3] [4]
The resulting .eps-file contained only:
[2]
[4]
But i could save it as a .fig-file that contained all the data.
Then i used export_fig.m from file-exchange, to export it as an .eps-file. And that did work. So my problem is solved.
Big thx
Tim Keiper
Tim Keiper 2020년 4월 22일
This no longer works in Matlab 2019 - ScreenPixelsPerInch set to read only. is there a new solution using export_fig.m?

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Demis John
Demis John 2013년 11월 27일
편집: Demis John 2013년 11월 27일
I Agree - see Jim's link above (skip the 2 spam posts & see Romesh's explanation) - enables one to save a figure of arbitrarily large size, regardless of size on screen.
You essentially use
set(gcf, 'PaperPosition', [0 0 20 20]) % can be bigger than screen
set(gcf, 'PaperSize', [20 20]) % Same, but for PDF output
& the print command:
print(gcf, 'MyFigure.png', '-dpng', '-r300' ); %save file as PNG w/ 300dpi
print(gcf, 'MyFigure.pdf', '-dpdf', '-r300' ); %save file as PDF w/ 300dpi
Units are inches by default; can change 'Units' property if desired.
  댓글 수: 1
Daniel Shub
Daniel Shub 2013년 11월 27일
I don't see how this works. If I want an axis that is exactly 53 cm x 53 cm what commands do I need to run?

댓글을 달려면 로그인하십시오.


Jim
Jim 2013년 10월 28일
The answer is very elegant and uses the paper property size to print a figure of any size you want. Very helpful.

카테고리

Help CenterFile Exchange에서 Interactive Control and Callbacks에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by