소개
이 랩에서는 Python 의 Matplotlib 라이브러리를 사용하여 100 개의 데이터 세트의 평균 (mu) 과 표준 편차 (sigma) 를 계산하고 mu 대 sigma 를 플롯합니다. 또한 플롯에 상호 작용 기능을 추가하여 (mu, sigma) 점 중 하나를 클릭하면 이 점을 생성한 데이터 세트의 원시 데이터가 플롯되도록 합니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한 사항으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
무작위 데이터 생성
먼저, 0 과 1 사이의 1000 개의 무작위 숫자를 각각 포함하는 100 개의 무작위 데이터 세트를 생성해야 합니다. numpy 의 random 모듈을 사용하여 무작위 데이터를 생성합니다.
import numpy as np
np.random.seed(19680801)
X = np.random.rand(100, 1000)
평균 및 표준 편차 계산
다음으로, 100 개의 각 데이터 세트의 평균과 표준 편차를 계산합니다. numpy 의 mean 및 std 함수를 사용하여 이러한 값을 계산합니다.
xs = np.mean(X, axis=1)
ys = np.std(X, axis=1)
데이터 플롯
이제 Matplotlib 의 pyplot 모듈을 사용하여 mu 대 sigma 를 플롯합니다. mu 와 sigma 에 대해 계산된 값을 사용하여 산점도 (scatter plot) 를 생성합니다. 또한 picker 매개변수를 True 로 설정하여 플롯에 상호 작용성을 추가합니다.
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.set_title('click on point to plot time series')
line, = ax.plot(xs, ys, 'o', picker=True, pickradius=5)
상호 작용성 추가
산점도에서 점을 클릭하면 해당 점을 생성한 데이터 세트의 원시 데이터를 플롯하려고 합니다. 점이 클릭될 때 호출될 함수 onpick을 정의합니다. 이 함수는 원시 데이터를 플롯하고 해당 데이터 세트의 평균과 표준 편차를 표시합니다.
def onpick(event):
if event.artist != line:
return
N = len(event.ind)
if not N:
return
figi, axs = plt.subplots(N, squeeze=False)
for ax, dataind in zip(axs.flat, event.ind):
ax.plot(X[dataind])
ax.text(.05, .9, f'mu={xs[dataind]:1.3f}\nsigma={ys[dataind]:1.3f}',
transform=ax.transAxes, va='top')
ax.set_ylim(-0.5, 1.5)
figi.show()
fig.canvas.mpl_connect('pick_event', onpick)
플롯 표시
마지막으로, show 함수를 사용하여 플롯을 표시합니다.
plt.show()
요약
이 랩에서는 Matplotlib 을 사용하여 100 개의 데이터 세트의 평균과 표준 편차를 계산하고 mu 대 sigma 를 플롯하는 방법을 배웠습니다. 또한 점을 클릭하면 해당 점을 생성한 데이터 세트의 원시 데이터가 표시되도록 플롯에 상호 작용성 (interactivity) 을 추가했습니다. 이 랩은 데이터를 탐색하고 시각화하기 위한 Matplotlib 의 강력함과 유연성을 보여줍니다.