Python 을 이용한 Matplotlib 데이터 시각화

Beginner

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

소개

이 랩에서는 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 의 강력함과 유연성을 보여줍니다.