2017-03-16 8 views
0

저는 matlab figure를 png로 저장하고 있습니다. 나는 화면 크기에 꽉 인쇄 크기를 설정하려는, 그래서 사용 : 내 이미지가 화면 크기 나 화면의 중앙에 꽉 저장되지 않는 그러나matlab figure as png

set(gca(),'LooseInset',get(gca(),'TightInset')); %set print size tight to the screen size 

...

여기에 모든 것을 내 코드는 이미 시도되어

enter image description here

: 내 PNG 파일을 원하는
function []=FilledCircle1(x0,y0,Radius,N,col1) 

if(N<=1) 
    error('N must be greater than 1'); 
end 

hold on 
axis equal 
% axis off 
hold on 

t=(0:N)*2*pi/N; %t=-pi:0.01:pi 
x=Radius*cos(t)+x0; 
y=Radius*sin(t)+y0; 


c1=fill(x,y,col1); 

set (c1, 'edgecolor','k') 

set(gcf,'PaperUnits','inches','PaperSize',[0.8666,0.8666],'PaperPosition',[0 0 0.8666 0.8666])%setting size (130/150, 130/150, 150pixels per inch being the default size of img), paper position is imporrtant as otherwise i will have extra border 

% % set(gcf,'Position', [0 0 4.4466 3.5733], 'units','inches') 
% % iptsetpref('ImshowBorder','tight'); 

set(gca(),'LooseInset',get(gca(),'TightInset')); %set print size tight to the screen size 

% set(gcf, 'Position', get(0,'screensize')); 

set(gcf,'color','none'); %set backgroound color to transparent 
fig = gcf; 
fig.InvertHardcopy = 'off'; %saves the fig with the set background color 

이처럼 보이도록 17,451,515,

는 그러나이 같은 찾고 :

enter image description here

사람은 제가 뭘 잘못 이해하는 데 도움이 수 있습니까? 감사합니다.

+0

첫 번째 이미지가 두 번째 이미지와 어떤 관련이 있는지는 명확하지 않습니다. 어쨌든 인세 트는 * 축 *에 적용됩니다. 플롯 된 객체를 가운데 맞춤 및 확대하려는 경우 저장하기 전에 축 한계를 변경해야합니다. – excaza

+0

첫 번째 이미지는 필자가 채워진 원을 중심에 놓고 모든 화면을 채우고 싶다는 것을 보여주기위한 것입니다. @excaza – Mraquel

답변

3

문제는 x 및 y 눈금의 레이블이 그래프를 대체하기 때문입니다.

enter image description here

보다는 TightInset 덤비는, 난 그냥 축의 내부를 만들기 위해 axesPosition 속성을 설정합니다

전체 그림

hfig = figure(); 
hax = axes(); 

t = (0:N)*2*pi/N; %t=-pi:0.01:pi 
x = Radius*cos(t)+x0; 
y = Radius*sin(t)+y0; 

c1 = fill(x,y,col1); 

set(c1, 'edgecolor','k') 

set(hfig, 'PaperUnits', 'inches', ... 
      'PaperSize', [0.8666,0.8666], ... 
      'PaperPosition', [0 0 0.8666 0.8666], ... 
      'InvertHardCopy', 'off') 

axis(hax, 'equal') 
axis(hax, 'off') 

set(hax, 'Position', [0 0 1 1]); 
set(hfig, 'Color', 'none'); 

print(hfig, '-dpng', 'output.png') 

enter image description here

당신을 차지 export_fig을 사용하면 화면에 표시된 그래픽을보다 충실하게 재현 할 수 있습니다.

+0

export_fig 내 정신 건강을 여러 번 저장 했으므로 강력하게 권고합니다. – UJIN

+0

@Suever 감사합니다! – Mraquel