Matplotlib에서 그림 크기 마스터하기: 포괄적인 가이드
Updated on
인기있는 파이썬 데이터 시각화 라이브러리인 Matplotlib에서 그림 크기를 제어하는 방법을 이해하는 것은 고품질 플롯을 작성하는 데 있어서 필수적입니다. 이 포괄적인 가이드에서는 새로운 그림을 만들거나 기존 그림을 수정하려는 경우에 Matplotlib에서 그림 크기를 설정하는 여러 가지 방법을 탐색합니다.
Matplotlib 그림 크기 이해하기
Matplotlib은 MATLAB과 유사한 방식으로 작동합니다. 그림을 만들 때, 인치 단위로 그림의 크기를 지정할 수 있습니다. 새로운 그림을 만드는 데 사용되는 figure()
함수는 figsize
인자를 취합니다. 이 인자는 그림의 너비와 높이를 인치 단위로 나타냅니다. 보통 (너비, 높이)의 튜플 형태로 제공됩니다.
다음은 크기가 지정된 그림을 만드는 간단한 예제입니다:
from matplotlib.pyplot import figure
## 크기가 지정된 새로운 그림 만들기 (너비=8인치, 높이=6인치)
figure(figsize=(8, 6))
위의 코드 스니펫에서 figure()
함수가 (8, 6)
으로 설정된 figsize
매개변수와 함께 호출됩니다. 이렇게 해서 너비가 8인치, 높이가 6인치인 그림이 만들어집니다.
만들어진 그림 크기 조정하기
가끔, 만들어진 그림의 크기를 조정해야 하는 경우가 있습니다. Matplotlib 라이브러리에서는 set_size_inches()
함수를 제공하여 이를 가능하게 합니다.
이 함수를 사용하는 방법은 다음과 같습니다:
import matplotlib.pyplot as plt
## 새로운 그림 만들기
fig = plt.gcf()
## 그림 크기를 18.5x10.5 인치로 설정합니다.
fig.set_size_inches(18.5, 10.5)
## 그림 저장하기
fig.savefig('figure.png', dpi=100)
이 코드 스니펫에서는 gcf()
함수(get current figure, 현재 그림을 가져온다는 의미)가 사용됩니다. 이를 통해 현재 그림을 가져온 후, set_size_inches()
메서드를 사용해서 그림 크기를 설정합니다.
plt.rcParams
활용하기
Matplotlib에서 그림 크기를 설정하는 또 다른 방법으로는, 특히 plt.plot()
을 사용할 때 그림 환경을 사용하고 싶지 않은 경우 plt.rcParams
매개변수를 사용하는 것입니다.
다음은 간단한 예제입니다:
import matplotlib.pyplot as plt
그림 크기를 20x3으로 설정
plt.rcParams["figure.figsize"] = (20,3)
이 코드 스니펫에서 `rcParams` 딕셔너리가 사용되어 그림의 크기가 설정됩니다. Jupyter 노트북과 같이 인라인으로 플로팅하는 경우에 이 접근 방식은 굉장히 편리합니다.
### 센티미터 기준으로 그림 크기 설정
`figsize` 튜플은 인치를 사용합니다만, 크기를 센티미터로 설정하려면 센티미터 크기를 인치로 변환해야 합니다(1인치는 2.54cm 입니다).
이렇게 해볼 수 있습니다:
```python
## 센티미터 기준으로 그림 크기 설정
width_cm = 20
height_cm = 10
## 센티미터를 인치로 변환
width_in = width_cm/2.54
height_in = height_cm/2.54
## 지정된 크기로 새로운 그림 생성
figure(figsize=(width_in, height_in))
이 예제에서는 먼저 센티미터로 폭과 높이를 지정합니다. 그런 다음 이 크기를 2.54로 나누어 인치로 변환합니다. 마지막에는 변환된 크기를 사용하여 지정된 크기로 새로운 그림을 생성합니다.
rcParams
를 사용하여 그림 크기 조정
rcParams
접근 방식의 유연성과 힘을 강조하는 것이 중요합니다. 이 전략을 사용하면 스크립트나 노트북의 모든 그림에서 일관성을 보장하는 기본 설정을 정의할 수 있으며, 코드 환경 전체에서 그림 크기를 동적으로 조정할 수 있습니다. 다음 섹션에서는 rcParams
를 활용하여 그림 크기를 동적으로 조정하는 방법을 살펴보겠습니다.
rcParams
를 사용하여 동적으로 그림 크기 변경
이전에 언급한 대로, rcParams
는 일회성 그림 크기 설정뿐 아니라 전체 코딩 환경에서 그림 크기를 효율적으로 조정하는 방법도 제공합니다. 특히 큰 프로젝트에서 작업할 때 일관된 플로팅 스타일과 크기가 필요한 경우 이 접근 방식이 특히 유용합니다.
전역 그림 크기는 rcParamsDefault
속성을 사용하여 기본값으로 설정할 수 있습니다. 다음은 이렇게 하는 방법입니다:
plt.rcParams["figure.figsize"] = plt.rcParamsDefault["figure.figsize"]
이 코드에서 rcParamsDefault
속성에는 기본 설정이 포함되어 있으므로 그림 크기가 원래 크기로 재설정됩니다.
판다스를 이용해 그림 크기 제어하기
데이터 조작 및 분석에 사용되는 라이브러리인 판다스(Pandas)는 종종 시각화를 위해 Matplotlib과 함께 사용됩니다. 판다스로 작업하는 동안 그림 크기를 조정하려면 다음과 같이 플롯 함수 내에서 figsize
매개변수를 직접 설정할 수 있습니다:
df['some_column'].plot(figsize=(10, 5))
이 예제에서 df
는 판다스 데이터프레임이며, 크기가 10x5인 'some_column'에 대한 플롯을 만듭니다.
서브플롯을 생성하는 경우에도 그림 크기를 설정할 수 있습니다.
fig, ax = plt.subplots(figsize=(10, 5))
df['some_column'].plot(ax=ax)
## 기본 그림 크기 조정하기
기본 그림 크기를 변경하고 싶은 경우, 문제없습니다. Matplotlib은 기본 설정을 업데이트하여 쉽게 변경할 수 있도록 합니다:
```python
import matplotlib
matplotlib.rc('figure', figsize=(10, 5))
위 코드에서 matplotlib.rc
함수를 사용하여 기본 그림 크기를 변경합니다. 이제 생성된 모든 그림은 10x5 인치의 크기를 갖게 됩니다.
Matplotlib 대안: PyGWalker를 사용한 데이터 시각화
판다스 데이터프레임을 시각화하기 위해 Matplotlib을 사용하는 대신, 파이썬 라이브러리인 PyGWalker (opens in a new tab)를 사용하여 데이터 시각화를 쉽게 만들어 보세요.
더 이상 복잡한 파이썬 코딩 처리를 완료할 필요 없이, 데이터를 가져 오고 변수를 끌어다 놓아 각종 데이터 시각화를 만들 수 있게 도와주는 오픈 소스 파이썬 라이브러리입니다! 아래는 연산에 대한 빠른 데모 비디오입니다.
Jupyter Notebook에서 PyGWalker를 사용하는 방법은 다음과 같습니다.
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
대신 Kaggle 노트북 / Google Colab에서도 사용해 볼 수 있습니다.
PyGWalker는 오픈 소스 커뮤니티의 지원을 토대로 구축되었습니다. PyGWalker GitHub (opens in a new tab)을 확인하고 ⭐️을 주시기 바랍니다!
자주 묻는 질문:
-
Matplotlib에서 그림 크기를 어떻게 설정합니까?
figure()
함수의figsize
매개 변수를 사용하여 Matplotlib에서 그림 크기를 설정할 수 있습니다.figsize
매개 변수는 그림의 너비와 높이를 인치 단위로 나타내는 튜플을 받습니다. -
Matplotlib에서 기존 그림의 크기를 어떻게 조정합니까?
기존 그림의 크기를 조정하려면
set_size_inches()
함수를 사용하면 됩니다. 이 함수를 사용하면 현재 그림의 너비와 높이를 설정할 수 있습니다. -
Pandas 플롯에서 그림 크기를 설정할 수 있습니까?
예, Pandas
plot()
함수 내에서figsize
매개 변수를 사용하여 그림 크기를 직접 조정할 수 있습니다.
import JSONldScript from '../../../components/jsonld-script';
<JSONldScript
faq={{
data: [
{
question: 'Matplotlib에서 그림 크기를 어떻게 설정하나요?',
answer: 'Matplotlib에서는 figure() 함수에 figsize 매개변수를 사용하여 그림 크기를 설정할 수 있습니다. figsize 매개변수는 인치 단위로 표시되는 너비와 높이를 나타내는 튜플을 받습니다.'
},
{
question: 'Matplotlib에서 기존 그림 크기를 조정하는 방법은 무엇인가요?',
answer: '기존 그림의 크기를 조정하려면 set_size_inches() 함수를 사용하면 됩니다. 이 함수를 사용하면 현재 그림의 너비와 높이를 설정할 수 있습니다.'
},
{
question: 'Pandas 플롯에서 그림 크기를 설정할 수 있나요?',
answer: '네, Pandas의 plot() 함수에서 figsize 매개변수를 사용하여 그림 크기를 조정할 수 있습니다.'
},
]
}}
/>