Matplotlib Offset Copy 사용법

Beginner

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

소개

이 랩에서는 transforms.offset_copy를 사용하여 텍스트 문자열과 같은 드로잉 요소를 임의의 좌표계에서 주어진 위치를 기준으로 화면 좌표에서 지정된 오프셋으로 배치하는 방법을 배웁니다. Python 의 Matplotlib 라이브러리를 사용하여 산점도와 극좌표 플롯을 생성한 다음, offset_copy를 사용하여 각 플롯에 텍스트를 추가합니다.

VM 팁

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

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

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

라이브러리 임포트

먼저 필요한 라이브러리인 numpymatplotlib.pyplot를 임포트합니다.

import numpy as np
import matplotlib.pyplot as plt

데이터 생성

다음으로, 플롯에 사용할 데이터를 생성합니다. numpy를 사용하여 산점도의 x 및 y 좌표로 사용할 두 개의 배열 xsys를 생성합니다.

xs = np.arange(7)
ys = xs**2

산점도 생성

이제 matplotlib.pyplotplot 함수를 사용하여 산점도를 생성합니다.

fig = plt.figure(figsize=(5, 10))
ax = plt.subplot(2, 1, 1)

## Plot the data
for x, y in zip(xs, ys):
    plt.plot(x, y, 'ro')

산점도에 텍스트 추가

이제 offset_copy를 사용하여 산점도에 텍스트를 추가합니다. 먼저, 임의의 좌표계에서 주어진 위치를 기준으로 화면 좌표에서 지정된 오프셋에 텍스트를 배치하는 변환 (transform) 을 생성합니다. 그런 다음, matplotlib.pyplottext 함수를 사용하여 플롯에 텍스트를 추가합니다.

## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
                                       x=0.05, y=0.10, units='inches')

## Add text to the plot
for x, y in zip(xs, ys):
    plt.text(x, y, '%d, %d' % (int(x), int(y)), transform=trans_offset)

극좌표 플롯 생성

이제 matplotlib.pyplotpolar 함수를 사용하여 극좌표 플롯을 생성합니다.

ax = plt.subplot(2, 1, 2, projection='polar')

## Plot the data
for x, y in zip(xs, ys):
    plt.polar(x, y, 'ro')

극좌표 플롯에 텍스트 추가

마지막으로, offset_copymatplotlib.pyplottext 함수를 사용하여 극좌표 플롯에 텍스트를 추가합니다.

## Create the transform
trans_offset = mtransforms.offset_copy(ax.transData, fig=fig,
                                       y=6, units='dots')

## Add text to the plot
for x, y in zip(xs, ys):
    plt.text(x, y, '%d, %d' % (int(x), int(y)),
             transform=trans_offset,
             horizontalalignment='center',
             verticalalignment='bottom')

요약

이 랩에서는 transforms.offset_copy를 사용하여 임의의 좌표계에서 주어진 위치를 기준으로 화면 좌표에서 지정된 오프셋에 그림 요소를 배치하는 방법을 배웠습니다. 이 함수를 사용하여 Python 의 matplotlib.pyplot 라이브러리를 사용하여 생성된 산점도 (scatter plot) 와 극좌표 플롯에 텍스트를 추가했습니다.