소개
이 랩에서는 Matplotlib 의 mpl_toolkits.axes_grid1.parasite_axes.HostAxes 및 mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes 모듈을 사용하여 기생 축 (parasite axes) 을 만드는 방법을 배웁니다. 기생 축은 호스트 축 (host axes) 과 x 축 스케일을 공유하지만 y 축 방향으로 다른 스케일을 표시합니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
필요한 라이브러리 가져오기
먼저, 필요한 라이브러리를 가져와야 합니다. 이 랩에서는 플로팅을 위해 matplotlib.pyplot을 사용하고, 기생 축 (parasite axes) 을 생성하기 위해 mpl_toolkits.axes_grid1.parasite_axes.HostAxes 및 mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes를 사용합니다.
import matplotlib.pyplot as plt
from mpl_toolkits.axisartist.parasite_axes import HostAxes
Figure 생성 및 호스트 축 추가
plt.figure() 메서드를 사용하여 figure 를 생성하고, fig.add_axes() 메서드를 사용하여 호스트 축 (host axes) 을 추가합니다. 호스트 축은 기생 축 (parasite axes) 과 x 축 스케일을 공유합니다.
fig = plt.figure()
host = fig.add_axes([0.15, 0.1, 0.65, 0.8], axes_class=HostAxes)
기생 축 생성
host.get_aux_axes() 메서드를 사용하여 두 개의 기생 축 (parasite axes) 을 생성합니다. 기생 축이 호스트 축과 동일한 x 축 스케일을 공유하도록 viewlim_mode=None을 설정합니다. 또한 x 축 스케일이 공유되도록 sharex=host를 설정합니다.
par1 = host.get_aux_axes(viewlim_mode=None, sharex=host)
par2 = host.get_aux_axes(viewlim_mode=None, sharex=host)
호스트 축의 오른쪽 y 축 숨기기
host.axis["right"].set_visible(False) 메서드를 사용하여 호스트 축의 오른쪽 y 축을 숨깁니다.
host.axis["right"].set_visible(False)
첫 번째 기생 축의 오른쪽 y 축 표시
par1.axis["right"].set_visible(True) 메서드를 사용하여 첫 번째 기생 축의 오른쪽 y 축을 표시합니다. 또한 오른쪽 y 축의 눈금 레이블과 레이블을 표시하기 위해 par1.axis["right"].major_ticklabels.set_visible(True) 및 par1.axis["right"].label.set_visible(True)을 설정합니다.
par1.axis["right"].set_visible(True)
par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)
두 번째 기생 축에 오른쪽 y 축 추가
par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0)) 메서드를 사용하여 두 번째 기생 축에 오른쪽 y 축을 추가합니다.
par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0))
모든 축에 데이터 플롯
plot() 메서드를 사용하여 모든 축에 데이터를 플롯합니다. 또한 set() 메서드를 사용하여 모든 축에 대한 레이블과 제한을 설정합니다.
p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")
host.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
par1.set(ylim=(0, 4), ylabel="Temperature")
par2.set(ylim=(1, 65), ylabel="Velocity")
범례 및 축 색상 추가
host.legend() 메서드를 사용하여 호스트 축에 범례를 추가합니다. 또한 host.axis["left"].label.set_color(p1.get_color()), par1.axis["right"].label.set_color(p2.get_color()), 및 par2.axis["right2"].label.set_color(p3.get_color()) 메서드를 사용하여 호스트 축의 왼쪽 y 축 레이블, 첫 번째 기생 축의 오른쪽 y 축 레이블, 그리고 두 번째 기생 축의 오른쪽 y 축 레이블의 색상을 해당 선과 일치하도록 설정합니다.
host.legend()
host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right2"].label.set_color(p3.get_color())
플롯 표시
plt.show() 메서드를 사용하여 플롯을 표시합니다.
plt.show()
요약
이 랩에서는 Matplotlib 의 mpl_toolkits.axes_grid1.parasite_axes.HostAxes 및 mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes 모듈을 사용하여 기생 축 (parasite axes) 을 만드는 방법을 배웠습니다. 또한 기생 축에 데이터를 플롯하고 x 축 스케일을 호스트 축과 공유하는 방법도 배웠습니다.