Matplotlib 틱 로케이터

Beginner

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

소개

이 튜토리얼에서는 틱 로케이터 (tick locator) 를 사용하여 matplotlib 플롯에서 틱의 위치를 정의하는 방법을 배웁니다. 틱 로케이터는 x 축과 y 축의 틱 위치를 정의하여 플롯의 가독성을 높이는 데 도움이 됩니다. 다양한 유형의 틱 로케이터와 이를 matplotlib 플롯에서 구현하는 방법을 다룰 것입니다.

VM 팁

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

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

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

라이브러리 임포트

첫 번째 단계는 필요한 라이브러리를 임포트하는 것입니다. matplotlib.pyplotmatplotlib.ticker를 사용할 것입니다.

import matplotlib.pyplot as plt
import matplotlib.ticker as ticker
import numpy as np

플롯 설정

다음으로, figure 와 서브플롯 (subplot) 배열을 생성하여 플롯을 설정합니다. 또한 예제에서 축에 대한 공통 매개변수를 설정하는 setup 함수를 정의합니다.

fig, axs = plt.subplots(8, 1, figsize=(8, 6))

def setup(ax, title):
    """예제에서 Axes 에 대한 공통 매개변수를 설정합니다."""
    ## 하단 스파인만 표시
    ax.yaxis.set_major_locator(ticker.NullLocator())
    ax.spines[['left', 'right', 'top']].set_visible(False)

    ax.xaxis.set_ticks_position('bottom')
    ax.tick_params(which='major', width=1.00, length=5)
    ax.tick_params(which='minor', width=0.75, length=2.5)
    ax.set_xlim(0, 5)
    ax.set_ylim(0, 1)
    ax.text(0.0, 0.2, title, transform=ax.transAxes,
            fontsize=14, fontname='Monospace', color='tab:blue')

Null Locator 정의

Null locator 는 축에 눈금을 표시하지 않는 locator 입니다. ticker.NullLocator()를 사용하여 null locator 를 정의할 수 있습니다.

setup(axs[0], title="NullLocator()")
axs[0].xaxis.set_major_locator(ticker.NullLocator())
axs[0].xaxis.set_minor_locator(ticker.NullLocator())

Multiple Locator 정의

Multiple locator 는 정기적인 간격으로 눈금을 배치하는 locator 입니다. ticker.MultipleLocator()를 사용하여 multiple locator 를 정의할 수 있습니다.

setup(axs[1], title="MultipleLocator(0.5, offset=0.2)")
axs[1].xaxis.set_major_locator(ticker.MultipleLocator(0.5, offset=0.2))
axs[1].xaxis.set_minor_locator(ticker.MultipleLocator(0.1))

Fixed Locator 정의

Fixed locator 는 고정된 위치에 눈금을 배치하는 locator 입니다. ticker.FixedLocator()를 사용하여 fixed locator 를 정의할 수 있습니다.

setup(axs[2], title="FixedLocator([0, 1, 5])")
axs[2].xaxis.set_major_locator(ticker.FixedLocator([0, 1, 5]))
axs[2].xaxis.set_minor_locator(ticker.FixedLocator(np.linspace(0.2, 0.8, 4)))

Linear Locator 정의

Linear locator 는 선형 척도에서 정기적인 간격으로 눈금을 배치하는 locator 입니다. ticker.LinearLocator()를 사용하여 linear locator 를 정의할 수 있습니다.

setup(axs[3], title="LinearLocator(numticks=3)")
axs[3].xaxis.set_major_locator(ticker.LinearLocator(3))
axs[3].xaxis.set_minor_locator(ticker.LinearLocator(31))

Index Locator 정의

Index locator 는 인덱스 척도에서 정기적인 간격으로 눈금을 배치하는 locator 입니다. ticker.IndexLocator()를 사용하여 index locator 를 정의할 수 있습니다.

setup(axs[4], title="IndexLocator(base=0.5, offset=0.25)")
axs[4].plot([0]*5, color='white')
axs[4].xaxis.set_major_locator(ticker.IndexLocator(base=0.5, offset=0.25))

Auto Locator 정의

Auto locator 는 자동으로 정기적인 간격으로 눈금을 배치하는 locator 입니다. ticker.AutoLocator()를 사용하여 auto locator 를 정의할 수 있습니다.

setup(axs[5], title="AutoLocator()")
axs[5].xaxis.set_major_locator(ticker.AutoLocator())
axs[5].xaxis.set_minor_locator(ticker.AutoMinorLocator())

MaxN Locator 정의

MaxN locator 는 축에 최대 개수의 눈금을 배치하는 locator 입니다. ticker.MaxNLocator()를 사용하여 MaxN locator 를 정의할 수 있습니다.

setup(axs[6], title="MaxNLocator(n=4)")
axs[6].xaxis.set_major_locator(ticker.MaxNLocator(4))
axs[6].xaxis.set_minor_locator(ticker.MaxNLocator(40))

Log Locator 정의

Log locator 는 로그 스케일에서 정기적인 간격으로 눈금을 배치하는 locator 입니다. ticker.LogLocator()를 사용하여 log locator 를 정의할 수 있습니다.

setup(axs[7], title="LogLocator(base=10, numticks=15)")
axs[7].set_xlim(10**3, 10**10)
axs[7].set_xscale('log')
axs[7].xaxis.set_major_locator(ticker.LogLocator(base=10, numticks=15))

플롯 표시

마지막으로, plt.show()를 사용하여 플롯을 표시할 수 있습니다.

plt.tight_layout()
plt.show()

요약

이 튜토리얼에서는 matplotlib 플롯에서 틱 (tick) 의 위치를 틱 로케이터 (tick locator) 를 사용하여 정의하는 방법을 배웠습니다. 다양한 유형의 틱 로케이터와 이를 matplotlib 플롯에서 구현하는 방법을 다루었습니다. 이는 플롯을 더 읽기 쉽고 유익하게 만드는 데 도움이 될 수 있습니다.