PatchCollection 을 사용한 오차 막대에서 상자 플롯 만들기

Beginner

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

소개

이 랩에서는 PatchCollection을 사용하여 오차 막대에서 상자 그림을 만드는 방법을 배웁니다. 상자 그림은 데이터의 범위와 분포를 표시하는 데 유용합니다. x 및 y 방향의 막대 제한으로 정의된 사각형 패치를 추가하여 시각적으로 더 매력적인 오차 막대 플롯을 만들 수 있습니다.

VM 팁

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

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

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

라이브러리 가져오기

먼저 numpymatplotlib을 포함한 필요한 라이브러리를 가져오겠습니다.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.collections import PatchCollection
from matplotlib.patches import Rectangle

데이터 준비

그런 다음 상자 그림에 사용할 데이터를 준비합니다. x 및 y 값과 오차 값에 대한 더미 데이터를 생성합니다.

## 데이터 포인트 수
n = 5

## 더미 데이터
np.random.seed(19680801)
x = np.arange(0, n, 1)
y = np.random.rand(n) * 5.

## 더미 오차 (위와 아래)
xerr = np.random.rand(2, n) + 0.1
yerr = np.random.rand(2, n) + 0.2

오차 상자 함수 생성

이제 x 및 y 방향의 막대 제한으로 정의된 사각형 패치를 생성하는 make_error_boxes라는 함수를 생성합니다.

def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
                     edgecolor='none', alpha=0.5):

    ## Loop over data points; create box from errors at each point
    errorboxes = [Rectangle((x - xe[0], y - ye[0]), xe.sum(), ye.sum())
                  for x, y, xe, ye in zip(xdata, ydata, xerror.T, yerror.T)]

    ## Create patch collection with specified colour/alpha
    pc = PatchCollection(errorboxes, facecolor=facecolor, alpha=alpha,
                         edgecolor=edgecolor)

    ## Add collection to axes
    ax.add_collection(pc)

    ## Plot errorbars
    artists = ax.errorbar(xdata, ydata, xerr=xerror, yerr=yerror,
                          fmt='none', ecolor='k')

    return artists

Figure 및 Axes 생성

이제 plt.subplots()를 사용하여 상자 그림에 대한 figure 와 axes 를 생성합니다.

## Create figure and axes
fig, ax = plt.subplots(1)

오차 상자 생성 함수 호출

이제 make_error_boxes() 함수를 호출하여 플롯에 오차 상자를 생성합니다.

## Call function to create error boxes
_ = make_error_boxes(ax, x, y, xerr, yerr)

플롯 표시

마지막으로, plt.show()를 사용하여 플롯을 표시합니다.

plt.show()

요약

이 랩에서는 Matplotlib 의 PatchCollection 을 사용하여 오차 막대에서 상자 플롯을 만드는 방법을 배웠습니다. x 및 y 방향의 막대 제한으로 정의된 사각형 패치를 추가하여 시각적으로 더 매력적인 오차 막대 플롯을 만들 수 있었습니다.