본문 바로가기
IT/Matplotlib

Matplotlib 그래프 픽셀 단위로 크기 조정하기와 그래프 크기 가져오기

by 소소메모 2020. 4. 1.
반응형

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

댓글