화씨 섭씨 눈금

Beginner

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

소개

이 랩의 목적은 왼쪽 및 오른쪽 y 축에 두 개의 눈금을 표시하는 방법을 시연하는 것입니다. 이 예제에서는 화씨 (Fahrenheit) 와 섭씨 (Celsius) 눈금을 사용합니다. 첫 번째 축에 따라 두 번째 축을 업데이트하기 위해 클로저 함수를 콜백 (callback) 으로 등록하여 사용합니다.

VM 팁

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

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

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

필요한 라이브러리 가져오기

먼저, numpymatplotlib.pyplot 라이브러리를 가져와야 합니다.

import matplotlib.pyplot as plt
import numpy as np

화씨를 섭씨로 변환하는 함수 정의

다음으로, 화씨 온도를 섭씨로 변환하는 함수를 정의합니다.

def fahrenheit2celsius(temp):
    """
    화씨 온도가 주어졌을 때 섭씨 온도를 반환합니다.
    """
    return (5. / 9.) * (temp - 32)

두 번째 축을 업데이트하는 함수 정의

첫 번째 축에 따라 두 번째 축을 업데이트하기 위해 클로저 함수를 콜백 (callback) 으로 등록하여 정의합니다.

def convert_ax_c_to_celsius(ax_f):
    """
    첫 번째 축에 따라 두 번째 축을 업데이트합니다.
    """
    y1, y2 = ax_f.get_ylim()
    ax_c.set_ylim(fahrenheit2celsius(y1), fahrenheit2celsius(y2))
    ax_c.figure.canvas.draw()

플롯 생성

이제 matplotlib.pyplotsubplots() 함수를 사용하여 두 개의 y 축이 있는 플롯을 생성합니다. 또한 첫 번째 축의 ylim_changed 이벤트를 convert_ax_c_to_celsius() 함수에 연결합니다.

fig, ax_f = plt.subplots()
ax_c = ax_f.twinx()

ax_f.callbacks.connect("ylim_changed", convert_ax_c_to_celsius)

데이터 플롯

첫 번째 축의 plot() 함수를 사용하여 데이터를 플롯합니다.

ax_f.plot(np.linspace(-40, 120, 100))

축 제한 및 레이블 설정

x 축 제한을 (0, 100) 으로 설정하고, y 축 레이블과 제목을 설정합니다.

ax_f.set_xlim(0, 100)
ax_f.set_title('Two scales: Fahrenheit and Celsius')
ax_f.set_ylabel('Fahrenheit')
ax_c.set_ylabel('Celsius')

플롯 표시

마지막으로, matplotlib.pyplotshow() 함수를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Python Matplotlib 을 사용하여 왼쪽 및 오른쪽 y 축에 두 개의 스케일을 표시하는 방법을 배웠습니다. 클로저 함수를 사용하여 첫 번째 축에 따라 두 번째 축을 업데이트하는 콜백으로 등록했습니다. 이는 서로 다른 단위를 가진 두 개의 데이터 집합을 플로팅하려는 경우 유용합니다.