Matplotlib 를 이용한 눈금 레이블 형식 지정

Beginner

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

소개

이 튜토리얼 랩에서는 Python Matplotlib 라이브러리를 사용하여 틱 레이블의 형식을 지정하는 과정을 안내합니다. 기본 틱 포맷터와 ~.axes.Axes.ticklabel_format을 통해 가능한 다양한 구성을 다룹니다.

VM 팁

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

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

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

필요한 라이브러리 임포트

Python Matplotlib 라이브러리를 사용하려면 Python 환경으로 가져와야 합니다. 또한, 예제 플롯에 대한 데이터를 생성하기 위해 NumPy 라이브러리를 사용할 것입니다.

import matplotlib.pyplot as plt
import numpy as np

예제 플롯용 데이터 생성

~.axes.Axes.ticklabel_format으로 가능한 다양한 구성을 시연하기 위해 세 개의 플롯에 대한 데이터를 생성합니다.

x = np.arange(0, 1, .01)

## Plot 1
plot1_x = x * 1e5 + 1e10
plot1_y = x * 1e-10 + 1e-5

## Plot 2
plot2_x = x * 1e5
plot2_y = x * 1e-4

## Plot 3
plot3_x = -x * 1e5 - 1e10
plot3_y = -x * 1e-5 - 1e-10

예제 플롯용 서브플롯 생성

예제 플롯을 표시하기 위해 3 x 3 그리드의 서브플롯을 생성합니다.

fig, axs = plt.subplots(
    3, 3, figsize=(9, 9), layout="constrained", gridspec_kw={"hspace": 0.1})

서브플롯에 데이터 플롯

3 단계에서 생성한 서브플롯에 생성된 데이터를 플롯합니다.

for col in axs.T:
    col[0].plot(plot1_x, plot1_y)
    col[1].plot(plot2_x, plot2_y)
    col[2].plot(plot3_x, plot3_y)

눈금 레이블 형식 구성

서브플롯의 눈금 레이블 형식을 구성합니다. 첫 번째 서브플롯은 기본 설정을 사용하고, 두 번째 서브플롯은 수학 표현식의 멋진 형식을 사용하며, 세 번째 서브플롯은 오프셋 표기법을 사용하지 않습니다.

## Subplot 1 (default settings)
axs[0, 0].set_title("default settings")

## Subplot 2 (useMathText=True)
for ax in axs[:, 1]:
    ax.ticklabel_format(useMathText=True)
axs[0, 1].set_title("useMathText=True")

## Subplot 3 (useOffset=False)
for ax in axs[:, 2]:
    ax.ticklabel_format(useOffset=False)
axs[0, 2].set_title("useOffset=False")

예제 플롯 표시

구성된 눈금 레이블 형식을 사용하여 예제 플롯을 표시합니다.

plt.rcParams.update({"axes.titleweight": "bold", "axes.titley": 1.1})
plt.show()

요약

이 튜토리얼 랩에서는 Python Matplotlib 라이브러리를 사용하여 눈금 레이블 형식을 지정하는 방법을 배웠습니다. 세 개의 예제 플롯에 대한 데이터를 생성하고 각 플롯에 대한 눈금 레이블 형식을 구성했습니다. 다양한 눈금 레이블 형식 구성을 시각화하기 위해 예제 플롯을 표시했습니다.