Matplotlib 눈금 레이블 방향

Beginner

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

소개

이 랩에서는 Matplotlib 플롯에서 눈금 레이블의 방향을 설정하는 방법을 안내합니다. x 축과 y 축 모두에 대한 눈금 레이블의 방향을 사용자 정의하는 방법을 배우게 됩니다.

VM 팁

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

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

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

필요한 모듈 가져오기

먼저, 플롯을 생성하는 데 필요한 모듈을 가져와야 합니다. Matplotlib 와 mpl_toolkits 의 AxisArtist 를 사용합니다.

import matplotlib.pyplot as plt
import mpl_toolkits.axisartist.axislines as axislines

축 설정 함수 생성

원하는 눈금 레이블로 축을 설정하는 함수를 생성합니다.

def setup_axes(fig, pos):
    ax = fig.add_subplot(pos, axes_class=axislines.Axes)
    ax.set_yticks([0.2, 0.8])
    ax.set_xticks([0.2, 0.8])
    return ax

눈금 레이블 방향 사용자 정의

눈금 레이블 방향을 사용자 정의하는 다양한 방법을 보여주기 위해 세 개의 서브플롯을 생성합니다.

바깥쪽을 가리키는 눈금 레이블

이 단계에서는 눈금 레이블이 바깥쪽을 가리키는 서브플롯을 생성합니다.

fig = plt.figure(figsize=(6, 3))
fig.subplots_adjust(bottom=0.2)

ax = setup_axes(fig, 131)
for axis in ax.axis.values():
    axis.major_ticks.set_tick_out(True)

사용자 정의 눈금 레이블 방향

이 단계에서는 사용자 정의된 눈금 레이블 방향을 가진 서브플롯을 생성합니다.

ax = setup_axes(fig, 132)
ax.axis["left"].set_axis_direction("right")
ax.axis["bottom"].set_axis_direction("top")
ax.axis["right"].set_axis_direction("left")
ax.axis["top"].set_axis_direction("bottom")

한쪽 면에서 바깥쪽을 가리키는 눈금 레이블

이 단계에서는 한쪽 면에서 바깥쪽을 가리키는 눈금 레이블을 가진 서브플롯을 생성합니다.

ax = setup_axes(fig, 133)
ax.axis["left"].set_axis_direction("right")
ax.axis[:].major_ticks.set_tick_out(True)

ax.axis["left"].label.set_text("Long Label Left")
ax.axis["bottom"].label.set_text("Label Bottom")
ax.axis["right"].label.set_text("Long Label Right")
ax.axis["right"].label.set_visible(True)
ax.axis["left"].label.set_pad(0)
ax.axis["bottom"].label.set_pad(10)

plt.show()

요약

이 랩에서는 AxisArtist 를 사용하여 Matplotlib 플롯에서 눈금 레이블의 방향을 사용자 정의하는 방법을 배웠습니다. set_axis_direction()major_ticks.set_tick_out() 메서드를 사용하여 다양한 눈금 레이블 방향을 가진 서브플롯을 생성할 수 있습니다.