소개
이 랩에서는 set_axis_direction() 메서드를 사용하여 Matplotlib 플롯에서 축 방향을 변경하는 방법을 배우게 됩니다. 이 메서드를 사용하면 축의 방향을 상단, 하단, 왼쪽 또는 오른쪽의 네 가지 기본 방향 중 하나로 변경할 수 있습니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.
학습 중에 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 즉시 해결해 드리겠습니다.
라이브러리 임포트
먼저, 이 랩에 필요한 라이브러리를 임포트해야 합니다. numpy와 matplotlib을 사용합니다.
import matplotlib.pyplot as plt
import numpy as np
플롯 설정
다음으로, 직사각형 상자에 극좌표 투영을 설정하는 함수 setup_axes()를 정의합니다. 이 함수는 GridHelperCurveLinear를 사용하여 직사각형 상자가 있는 극좌표 투영을 생성합니다.
from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist as axisartist
import mpl_toolkits.axisartist.angle_helper as angle_helper
import mpl_toolkits.axisartist.grid_finder as grid_finder
from mpl_toolkits.axisartist.grid_helper_curvelinear import \
GridHelperCurveLinear
def setup_axes(fig, rect):
"""Polar projection, but in a rectangular box."""
grid_helper = GridHelperCurveLinear(
Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform(),
extreme_finder=angle_helper.ExtremeFinderCycle(
20, 20,
lon_cycle=360, lat_cycle=None,
lon_minmax=None, lat_minmax=(0, np.inf),
),
grid_locator1=angle_helper.LocatorDMS(12),
grid_locator2=grid_finder.MaxNLocator(5),
tick_formatter1=angle_helper.FormatterDMS(),
)
ax = fig.add_subplot(
rect, axes_class=axisartist.Axes, grid_helper=grid_helper,
aspect=1, xlim=(-5, 12), ylim=(-5, 10))
ax.axis[:].toggle(ticklabels=False)
ax.grid(color=".9")
return ax
플로팅 축 추가
플롯에 플로팅 축을 추가하는 두 개의 함수를 정의합니다. 첫 번째 함수 add_floating_axis1()은 theta = 30 레이블이 있는 플로팅 축을 플롯에 추가합니다. 두 번째 함수 add_floating_axis2()는 r = 6 레이블이 있는 플로팅 축을 플롯에 추가합니다.
def add_floating_axis1(ax):
ax.axis["lat"] = axis = ax.new_floating_axis(0, 30)
axis.label.set_text(r"$\theta = 30^{\circ}$")
axis.label.set_visible(True)
return axis
def add_floating_axis2(ax):
ax.axis["lon"] = axis = ax.new_floating_axis(1, 6)
axis.label.set_text(r"$r = 6$")
axis.label.set_visible(True)
return axis
축 방향 변경
이제 네 개의 서로 다른 플롯을 설정하기 위해 루프를 생성하고, 각 플롯에 네 개의 주요 방향으로 플로팅 축을 배치합니다. 루프 내에서 add_floating_axis1() 및 add_floating_axis2()를 사용하여 플로팅 축을 추가하고, set_axis_direction()을 사용하여 축 방향을 설정합니다.
fig = plt.figure(figsize=(8, 4), layout="constrained")
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=241+i)
axis = add_floating_axis1(ax)
axis.set_axis_direction(d)
ax.set(title=d)
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=245+i)
axis = add_floating_axis2(ax)
axis.set_axis_direction(d)
ax.set(title=d)
plt.show()
플롯 보기
마지막으로, 플롯을 봅니다. 네 개의 주요 방향 각각에 플로팅 축이 있는 동일한 플롯을 볼 수 있습니다.
요약
이 랩에서는 set_axis_direction() 메서드를 사용하여 Matplotlib 플롯에서 축 방향을 변경하는 방법을 배웠습니다. 이 메서드를 사용하면 축의 방향을 상단, 하단, 왼쪽 또는 오른쪽의 네 가지 주요 방향 중 하나로 쉽게 변경할 수 있습니다.