Matplotlib으로 생성한 그래프를 SVG(Scalable Vector Graphics) 파일로 저장하면 확대해도 화질이 손상되지 않는 벡터 이미지를 얻을 수 있어, 논문·보고서·웹 게시 등에 매우 유용합니다. 이 글에서는 Matplotlib 그림에서 SVG 파일을 내보내는 방법을 단계별로 살펴보겠습니다.
SVG 파일 내보내기 절차
그림 크기를 설정하고 서브플롯(subplot) 주변과 사이의 여백(padding)을 조정합니다.
figure 객체와 서브플롯 집합을 생성합니다.
NumPy를 사용하여 무작위 x, y 데이터 포인트를 만듭니다.
plot() 메서드를 사용해 x, y 데이터를 그래프로 그립니다.
savefig() 메서드를 사용해 .svg 형식의 파일로 저장합니다.
예제 코드
import numpy as np
from matplotlib import pyplot as plt
# 그림 크기 및 자동 레이아웃 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
# figure와 subplot 생성
fig, ax = plt.subplots()
# 무작위 x, y 데이터 생성
x = np.random.rand(10)
y = np.random.rand(10)
# 점선 스타일의 빨간색 선 그래프 그리기
ax.plot(x, y, ls='dotted', linewidth=2, color='red')
# SVG 파일로 저장
plt.savefig("myimg.svg")실행 결과
위 코드를 실행하면 현재 작업 디렉터리에 "myimg.svg"라는 이름의 SVG 파일이 생성되고 저장됩니다.
추가 팁
저장 경로 지정: savefig()에 전체 경로를 입력하면 원하는 폴더에 파일을 저장할 수 있습니다. 예: plt.savefig("output/myimg.svg")
투명 배경: transparent=True 옵션을 추가하면 배경이 투명한 SVG 파일을 만들 수 있습니다.
해상도 조절: dpi 매개변수를 사용해 출력 해상도를 지정할 수 있습니다. 예: plt.savefig("myimg.svg", dpi=300)
이처럼 savefig() 메서드 하나만으로 Matplotlib 그래프를 간편하게 SVG 벡터 이미지로 변환할 수 있습니다.