Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib plt.figure()와 plt.subplots()의 차이점 완벽 정리

Matplotlib에서 그래프를 그릴 때 가장 먼저 마주하게 되는 두 함수가 바로 plt.figure()plt.subplots()입니다. 두 함수 모두 Figure(그림 영역)를 생성하지만, 반환하는 값과 활용 방식에 중요한 차이가 있습니다.

  • plt.figure() — 새로운 Figure를 생성하거나, 이미 존재하는 Figure를 활성화합니다. 이 함수는 Figure 객체 자체만 반환합니다.

  • plt.subplots() — 하나의 Figure와 서브플롯(Axes) 집합을 동시에 생성합니다. Figure와 Axes를 한 번에 얻을 수 있어 실무에서 가장 널리 사용됩니다.

아래 간단한 예제를 통해 두 함수의 차이를 직접 확인해 보겠습니다.

진행 단계

  1. Figure 크기를 설정하고, 서브플롯 사이 및 주변 여백(padding)을 조정합니다.
  2. plt.figure() 메서드를 사용하여 새 Figure를 생성하거나 기존 Figure를 활성화합니다.
  3. plt.subplots() 메서드를 사용하여 Figure와 서브플롯 세트를 함께 생성합니다.
  4. plt.show() 메서드를 호출하여 그래프를 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt

# 그림 크기 설정
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# plt.figure로 새 Figure 생성
fig1 = plt.figure("Figure 1 - plt.figure")

# plt.subplots로 Figure와 서브플롯 동시 생성
fig2, ax = plt.subplots()
plt.title("Figure 2 - plt.subplots")

# 그래프 표시
plt.show()

출력 결과

plt.figure()를 실행하면 다음과 같은 빈 Figure 창이 나타납니다.

Matplotlib plt.figure()와 plt.subplots()의 차이점 완벽 정리

반면, plt.subplots()를 실행하면 Axes가 포함된 Figure가 아래와 같이 생성됩니다.

Matplotlib plt.figure()와 plt.subplots()의 차이점 완벽 정리

핵심 차이점 요약

구분plt.figure()plt.subplots()
반환값Figure 객체만 반환(Figure, Axes) 튜플 반환
Axes 생성별도로 add_subplot() 호출 필요자동으로 Axes 생성
다중 플롯nrows, ncols 지원 안 함nrows, ncols로 격자형 레이아웃 구성 가능
추천 용도Figure 속성(크기, 배경색 등)만 제어할 때대부분의 일반적인 시각화 작업

정리하면, 축(Axes)까지 한 번에 준비되는 plt.subplots()가 대부분의 경우 더 편리하고 권장되는 방법이며, plt.figure()는 Figure 수준의 세부 설정이 필요할 때 유용합니다.