Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[MATLAB] MATLAB에서 figure를 pdf로 export하기 (exportgraphics) 본문

프로그래밍 Programming/매트랩 MATLAB

[MATLAB] MATLAB에서 figure를 pdf로 export하기 (exportgraphics)

보통의공대생 2023. 1. 30. 19:59

 

1. Figure를 pdf로 저장하는 방법

MATLAB에서 일반적인 저장 방법을 이용해서 pdf를 export하면 다음과 같은 문제가 발생한다.

 

 

파일을 열어보면 a4 용지에 떨렁 그림이 그려져 있는 것을 확인할 수 있다.

실제 이 파일을 LaTeX에 쓰고 싶거나 하면 저 A4 용지 크기 그림이 그대로 들어가기 때문에 곤란하다.

그렇다고 png를 쓰자니 화질 때문에 걱정이 될 것이다.

 

원래 MATLAB은 이렇게 pdf로 export하는 문제가 있었는데 2020년부터인가 새로운 함수를 만들어주었다.

 

https://kr.mathworks.com/help/matlab/ref/exportgraphics.html

 

위 링크에 들어가서 알 수 있는 것은, 이제 pdf를 손쉽게 저장할 수 있다는 것이다.

 

ax1 = figure(1);
plot(x,y);

exportgraphics(ax1, "test.pdf") ;

 

위와 같은 코드로 저장하면 크게 맞게 딱 저장된 것을 확인할 수 있다.

 

다음 설명을 확인하면, 그래픽은 콘텐츠를 둘러싸는 여백까지 저장된다고 한다.

 

 

2. 벡터 이미지로 저장하는 옵션

 

그리고 pdf로 저장할 때 

h = heatmap(rand(10,10));
exportgraphics(h,'Hmap.pdf','BackgroundColor','none','ContentType','vector')

다음과 같이 contenttype을 vector로 지정할 수 있는데 이 때 그림이 벡터 그래픽스로 저장된다. (애초에 svg나 eps는 벡터 형식 파일이라서 당연히 파일명을 그렇게 하면 벡터 이미지로 저장되지 않나 싶은데...)

그런데 이렇게 할 경우에 주의할 점은 '글씨'가 벡터화되지 못해서 저장이 안 될 수도 있다.

그래서 벡터로 저장하는 것은 그림만 있는 경우가 아니라면 그다지 권하지 않는다.

 

 

위의 설명에도 그렇게 나와있다. 일단 필자는 레이텍으로 컴파일하기 때문에 이 컴파일이 벡터화가 가능했던 것인지, 레이텍으로 작성한 ylabel이나 title은 멀쩡하게 나왔다.

 

 

위 그림과 같이 $\omega_{x}$ 등 잘 지원이 된다. (위는 vector로 저장한 경우)

 

3. 기타 옵션

 

위에서 볼 수 있듯이 background 색상도 지정할 수 있고, 색상을 rgb로 할지 또는 cmyk로 할지도 지정할 수 있다.

래스터 이미지(png 등)의 경우에는 해상도도 지정할 수 있어서 유용하다.

 

옵션

'backgroundcolor' : color이름

'Resolution' : 150(default)

'colorspace'  : 'rgb', 'gray', 'cmyk'

 

Comments