Matplotlib 를 사용한 마스킹된 데이터 산점도

Beginner

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

소개

이 튜토리얼에서는 Python Matplotlib 라이브러리를 사용하여 마스크 처리된 데이터 포인트를 갖는 산점도를 만드는 방법을 안내합니다. 또한 마스크 처리된 영역을 구분하기 위한 선을 추가할 것입니다.

VM 팁

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

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

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

필요한 라이브러리 임포트 및 랜덤 시드 설정

재현성을 보장하기 위해 필요한 라이브러리를 임포트하고 랜덤 시드를 설정하는 것으로 시작합니다.

import matplotlib.pyplot as plt
import numpy as np

## Setting random seed for reproducibility
np.random.seed(19680801)

산점도 데이터 생성

다음으로, 산점도에 대한 데이터를 생성합니다. 0 과 0.9 사이의 임의의 x 및 y 값과 0 과 10 사이의 임의의 반지름을 가진 100 개의 데이터 포인트를 생성합니다. 각 데이터 포인트의 색상은 해당 영역의 제곱근에 의해 결정됩니다.

N = 100
r0 = 0.6
x = 0.9 * np.random.rand(N)
y = 0.9 * np.random.rand(N)
area = (20 * np.random.rand(N))**2  ## 0 to 10 point radii
c = np.sqrt(area)

데이터 포인트 마스킹 및 산점도 생성

원점으로부터의 거리를 기준으로 데이터 포인트를 마스킹합니다. r0보다 작은 거리를 가진 데이터 포인트는 area1에서 마스킹되고, r0보다 크거나 같은 거리를 가진 데이터 포인트는 area2에서 마스킹됩니다. 그런 다음, area1area2에 대해 각각 marker='^'marker='o'를 사용하여 마스킹된 데이터 포인트의 산점도를 생성합니다.

r = np.sqrt(x ** 2 + y ** 2)
area1 = np.ma.masked_where(r < r0, area)
area2 = np.ma.masked_where(r >= r0, area)
plt.scatter(x, y, s=area1, marker='^', c=c)
plt.scatter(x, y, s=area2, marker='o', c=c)

마스킹된 영역을 구분하는 선 추가

마지막으로, 마스킹된 영역을 구분하기 위해 선을 추가합니다. 세타 (theta) 값의 배열을 생성하고 np.cos(theta)np.sin(theta)를 사용하여 반지름이 r0인 원을 플롯합니다.

## Show the boundary between the regions:
theta = np.arange(0, np.pi / 2, 0.01)
plt.plot(r0 * np.cos(theta), r0 * np.sin(theta))

산점도 표시

plt.show()를 사용하여 산점도를 표시합니다.

plt.show()

요약

이 튜토리얼에서는 Python Matplotlib 라이브러리를 사용하여 마스킹된 데이터 포인트를 가진 산점도를 만드는 방법을 배웠습니다. 또한 마스킹된 영역을 구분하기 위해 선을 추가했습니다. 먼저 필요한 라이브러리를 가져오고 난수 시드 (random seed) 를 설정하는 것으로 시작했습니다. 다음으로, 산점도에 대한 데이터를 생성하고 원점으로부터의 거리에 따라 데이터 포인트를 마스킹했습니다. 그런 다음 마스킹된 데이터 포인트의 산점도를 생성하고 마스킹된 영역을 구분하는 선을 추가했습니다. 마지막으로, 산점도를 표시했습니다.