소개
이 랩에서는 PatchCollection을 사용하여 오차 막대에서 상자 그림을 만드는 방법을 배웁니다. 상자 그림은 데이터의 범위와 분포를 표시하는 데 유용합니다. x 및 y 방향의 막대 제한으로 정의된 사각형 패치를 추가하여 시각적으로 더 매력적인 오차 막대 플롯을 만들 수 있습니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단을 클릭하여 Notebook 탭으로 전환하여 실습을 위해 Jupyter Notebook에 액세스하십시오.
때로는 Jupyter Notebook 이 로딩을 완료하는 데 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화할 수 없습니다.
학습 중에 문제가 발생하면 언제든지 Labby 에게 문의하십시오. 세션 후 피드백을 제공해주시면 문제를 신속하게 해결해 드리겠습니다.
라이브러리 가져오기
먼저 numpy 및 matplotlib을 포함한 필요한 라이브러리를 가져오겠습니다.
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 방향의 막대 제한으로 정의된 사각형 패치를 추가하여 시각적으로 더 매력적인 오차 막대 플롯을 만들 수 있었습니다.