Matplotlib 서브플롯 배치: HBoxDivider 및 VBoxDivider 활용

Beginner

This tutorial is from open-source community. Access the source code

소개

이 랩에서는 Matplotlib 을 사용하여 HBoxDividerVBoxDivider 클래스를 사용하여 서브플롯 (subplots) 을 만드는 방법을 배웁니다. 이러한 클래스를 사용하여 여러 서브플롯을 배열하는 방법을 보여주는 간단한 예제를 사용합니다.

VM 팁

VM 시작이 완료되면, 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 접속하십시오.

때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후에 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 임포트

먼저 필요한 라이브러리인 matplotlibnumpy를 임포트합니다.

import matplotlib.pyplot as plt
import numpy as np

데이터 생성

서브플롯의 데이터로 사용할 두 개의 numpy 배열을 생성합니다.

arr1 = np.arange(20).reshape((4, 5))
arr2 = np.arange(20).reshape((5, 4))

HBoxDivider를 사용하여 서브플롯 생성

HBoxDivider 클래스를 사용하여 두 개의 서브플롯을 나란히 생성합니다. 또한, 종횡비를 유지하면서 축의 높이가 같도록 축의 위치를 조정합니다.

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.imshow(arr1)
ax2.imshow(arr2)

pad = 0.5  ## pad in inches
divider = HBoxDivider(
    fig, 111,
    horizontal=[Size.AxesX(ax1), Size.Fixed(pad), Size.AxesX(ax2)],
    vertical=[Size.AxesY(ax1), Size.Scaled(1), Size.AxesY(ax2)])
ax1.set_axes_locator(divider.new_locator(0))
ax2.set_axes_locator(divider.new_locator(2))

plt.show()

VBoxDivider를 사용하여 서브플롯 생성

VBoxDivider 클래스를 사용하여 두 개의 서브플롯을 서로 아래에 생성합니다. 종횡비를 유지하면서 축의 너비가 같도록 축의 위치를 조정합니다.

fig, (ax1, ax2) = plt.subplots(2, 1)
ax1.imshow(arr1)
ax2.imshow(arr2)

divider = VBoxDivider(
    fig, 111,
    horizontal=[Size.AxesX(ax1), Size.Scaled(1), Size.AxesX(ax2)],
    vertical=[Size.AxesY(ax1), Size.Fixed(pad), Size.AxesY(ax2)])

ax1.set_axes_locator(divider.new_locator(0))
ax2.set_axes_locator(divider.new_locator(2))

plt.show()

요약

이 랩에서는 Matplotlib 에서 HBoxDividerVBoxDivider 클래스를 사용하여 서브플롯을 생성하는 방법을 배웠습니다. 종횡비를 유지하면서 축의 높이 또는 너비를 같게 조정하는 방법을 살펴보았습니다. 이러한 클래스는 단일 figure 내에서 여러 서브플롯을 정렬해야 할 때 유용할 수 있습니다.