Matplotlib의 그림에 서브 플롯 추가

Suraj Joshi 2023년1월30일
  1. matplotlib.pyplot.figure.add_subplot()메서드를 사용하여 Figure에 서브 플롯 추가
  2. Matplotlib.pyplot.subplots()를 사용하여 서브 플롯이있는 Figure 생성
Matplotlib의 그림에 서브 플롯 추가

이 튜토리얼은 파이썬에서matplotlib.pyplot.figure.add_subplot()메서드를 사용하여 Matplotlib Figure에 서브 플롯을 추가하는 방법을 설명합니다.

matplotlib.pyplot.figure.add_subplot()메서드를 사용하여 Figure에 서브 플롯 추가

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(5, 5))

x = [1, 2, 3, 4, 5]
y = [2, 4, 5, 1, 2]

subplot = fig.add_subplot(1, 1, 1)
subplot.plot(x, y)

fig.suptitle("Figure with only one Subplot")
plt.show()

출력:

Figure matplotlib에 하나의 서브 플롯 추가

서브 플롯이 하나만있는 그림을 생성합니다. 그림은 그림의 모든 서브 플롯 및 기타 요소를 포함하는 상위 레벨 요소로 해석 될 수 있습니다. 먼저(5,5)크기의 Figure 객체를 초기화 한 다음add_subplot()메서드를 사용하여 Figure에 서브 플롯을 추가합니다. add_subplot()메서드의 첫 번째 인수는 Figure의 서브 플롯 행 수를 나타내고 두 번째 인수는 서브 플롯 열 수를 나타내고 세 번째 인수는 그리드에서 서브 플롯의 위치를 ​​나타냅니다.

여기서fig.add_subplot(1,1,1)은 그림의1 X 1 그리드에 첫 번째 위치에 서브 플롯을 추가합니다. 또는fig.add_subplot(111)을 사용하여 동일한 결과를 얻을 수도 있습니다. add_subplot()메서드는 추가 된 서브 플롯에 세부 정보를 플로팅하고 추가하는 데 사용할 수있는axes 객체를 반환합니다.

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 6))

ax_1 = fig.add_subplot(121)
ax_1.text(0.3, 0.5, "subplot(121)")

ax_2 = fig.add_subplot(222)
ax_2.text(0.3, 0.5, "subplot(222)")

ax_3 = fig.add_subplot(224)
ax_3.text(0.3, 0.5, "subplot(224)")

fig.suptitle("Figure with multiple Subplots")
plt.show()

출력:

Figure matplotlib에 여러 서브 플롯 추가

여기에 세 개의 서브 플롯이있는 그림이 있습니다. 첫 번째 서브 플롯은 1 개의 행과 2 개의 열이있는 그리드의 첫 번째 그림입니다. 두 번째 서브 플롯은 두 개의 행과 두 개의 열이있는 그리드의 두 번째 그림을 나타냅니다. 마찬가지로 세 번째 행은 두 개의 행과 두 개의 열이있는 그리드의 네 번째 위치에있는 서브 플롯을 나타냅니다.

Matplotlib.pyplot.subplots()를 사용하여 서브 플롯이있는 Figure 생성

Matplotlib.pyplot.subplots()도 Figure에 서브 플롯을 추가합니다. 행과 열의 수를 메서드에 인수로 전달하고 메서드는 플롯을 조작하는 데 사용할 수있는 figure 객체와 axes 객체를 반환합니다.

import matplotlib.pyplot as plt

fig, ax = plt.subplots(2, 1)

ax[0].text(0.3, 0.5, "1st Subplot")
ax[0].set_xticks([])
ax[0].set_yticks([])

ax[1].text(0.3, 0.5, "2nd Subplot")
ax[1].set_xticks([])
ax[1].set_yticks([])

fig.suptitle("Figure with 2 subplots", fontsize=16)
plt.show()

출력:

서브 플롯 방법을 사용하여 Figure matplotlib에 여러 서브 플롯 추가

subplots()메서드를 사용하여 두 개의 행과 단일 열로 구성된 그리드에 두 개의 서브 플롯이있는 Figure를 생성합니다. 첫 번째 서브 플롯 또는 상단의 축은ax 목록의 첫 번째 요소로 조작 할 수 있고, 두 번째 서브 플롯 또는 맨 아래의 축은ax 목록의 두 번째 요소로 조작 할 수 있습니다.

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y1 = [i ** 2 for i in x]
y2 = [4 * i + 1 for i in x]

fig, ax = plt.subplots(2, 1)

ax[0].plot(x, y1)
ax[0].set_xlabel("X")
ax[0].set_ylabel("Y")

ax[1].plot(x, y2)
ax[1].set_xlabel("X")
ax[1].set_ylabel("Y")

plt.tight_layout()
plt.show()

출력:

서브 플롯 방법을 사용하여 서브 플롯을 Figure matplotlib로 사용자 지정

두 개의 서브 플롯이있는 Figure를 생성하고 상단 서브 플롯에 ‘x ^ 2’함수를 플로팅하고 하단 서브 플롯에 ‘4x + 1’함수를 플로팅합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Matplotlib Subplot