Matplotlib 픽셀 단위로 크기 조정하기
Matplotlib 에서 Figure 의 size를 pixel 단위로 설정하거나, pixel 단위로 값을 가져오는 방법을 알아보겠습니다.
Matplotlib 에서 Figure 는 그래프가 그려지는 큰 바탕입니다.
[참고] Matplotlib 전체 용어에 대한 설명은 이전 글을 참고하시기 바랍니다.
2020/03/31 - [IT/Matplotlib] - Matplotlib 그래프 기본 구조와 용어 이해하기
기본적으로는 그래프를 그릴 때 Figure 크기를 지정하지 않아도 디폴트 설정값으로 그래프를 그려냅니다.
크기 default 값은 figsize = (6.4, 4.8) 입니다.
그러나 그래프에 따라 기본 크기가 안 맞을 때가 많습니다.
이때 크기를 별도로 설정하게 됩니다.
그런데, Figure 의 사이즈 설정 기본 단위가 inch 이기 때문에 pixel 단위로 조정하고 싶을 때 어려움이 있습니다.
"아, 왜 inch 단위로 했을까 불편한데.....😥"
이때 dpi 값을 활용하면, inch 와 pixel 의 변환을 쉽게 할 수 있게 됩니다.
(네, matplotlib 에서 dpi 값을 제공합니다.)
DPI 는 Dot per Inch 의 줄임말로, 인치 당 도트(점) 을 의미합니다.
컴퓨터 이미지에서 점이라면 Pixel 이라고 보면 되겠습니다.
즉, 다음의 식으로
inch 와 pixel 의 관계를 이해하면, pixel 단위로도 크기 설정이 가능해집니다.
inch * dpi = pixel
1. pixel 단위로 Figure 크기 조정
Pixel 단위로 그래프 크기를 설정하는 예시를 보여드리겠습니다.
<pixel 단위로 Figure 크기 설정>
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x = 320 / fig.dpi # 가로 길이 (320 pixel)
y = 240 / fig.dpi # 세로 길이 (240 pixel)
fig.set_figwidth(x)
fig.set_figheight(y)
ax.plot([1,2,3,4,5])
plt.show(ax)
x, y 변수에 픽셀 단위로 값을 넣고 dpi 값으로 나누었습니다. 그러면 x, y 값은 inch 가 됩니다.
그 x, y 값을 set_figwidth , set_figheight 으로 지정 하면 됩니다
2. Figure 크기 가져오기
inch 와 pixel 관계를 아신다면,
Matplotlib의 Figure 의 크기를 pixel 단위로 변환해서 가져올 수도 있겠죠?
<matplotlib figure size 가져오기 (pixel 단위) >
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1,2,3,4,5])
size = fig.get_size_inches()*fig.dpi # inch 크기를 가져와 dpi 값을 곱합니다.
print('Figure size : width={} height={}'.format(size[0], size[1]))
Figure size : width=432.0 height=288.0
figure 에서 get_size_inches() 로 inch 값을 가져온 뒤 dpi 값을 곱하여 pixel 값을 구했습니다.
Matplotlib 그래프 크기 조정 시 위와 같이 pixel 단위로 활용해 보시기 바랍니다.
'IT > Matplotlib' 카테고리의 다른 글
Matplotlib 그래프 기본 구조와 용어 이해하기 (0) | 2020.03.31 |
---|
댓글