[python] matplotlib 이미지 저장하는 방법



matplotlib.pyplot 이미지 저장하는 방법







현재 figure을 저장시켜주는 pyplot의 savefig를 사용하여 이미지로 저장합니다.

plt.figure('저장하고자 하는 파일명.확장자')
plt.savefig('test.png')

dpi 옵션을 사용하여 이미지의 품질을 조절할 수도 있습니다.
plt.savefig('test.png', dpi=300)

예제

import matplotlib.pyplot as plt
import numpy as np

x1 = np.array([_ for _ in range(10)])
y1 = 1 * x1 + 1
y2 = 2 * x1 + 1
y3 = 3 * x1 + 1 

print('y1: {0}'.format(y1))
print('y2: {0}'.format(y2))
print('y3: {0}'.format(y3))

plt.plot(x1, y1, label='y1')
plt.plot(x1, y2, label='y2')
plt.plot(x1y3, label='y3')
plt.legend()
# plt.show()

# 출력
# y1: [ 1  2  3  4  5  6  7  8  9 10]
# y2: [ 1  3  5  7  9 11 13 15 17 19]
# y3: [ 1  4  7 10 13 16 19 22 25 28]

간단한 x1, y1, y2, y3 numpy 배열을 만들어 plot으로 그린 figure을 아래와 같은 명령어로 저장합니다.
plt.savefig('test.png', dpi=300)

주의

plt.show를 통해 표시된 창을 닫으면 figure 정보가 메모리에서 해제됩니다.
그렇기 때문에 show이후 savefig를 하면 빈 이미지를 저장하게 됩니다.
이를 위해서 plt.show()를 주석처리 하던지 plt.show() 이전에 plt.savefig()를 호출해야 합니다.



참고문헌

[1] https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.savefig.html
[2] https://stackoverflow.com/questions/30765455/why-is-my-plt-savefig-is-not-working





댓글

이 블로그의 인기 게시물

[python] selenium close와 quit 차이점

[opencv-python] 이미지 크기조절(resize) 하는 법

[python]파이썬: csv reader header skip (첫번째 행 무시하기, 안읽기)