메모
전체 예제 코드를 다운로드 하려면 여기 를 클릭 하십시오.
박스 플롯과 바이올린 플롯 비교 #
바이올린 플롯은 Tukey(1977)의 상자 플롯과 밀접하게 관련되어 있지만 샘플 데이터의 분포(밀도 추적)와 같은 유용한 정보를 추가합니다.
기본적으로 박스 플롯은 1.5 * 사분위수 범위를 벗어난 데이터 포인트를 위스커 위 또는 아래의 이상값으로 표시하는 반면 바이올린 플롯은 데이터의 전체 범위를 표시합니다.
boxplots 및 그 역사에 대한 좋은 일반 참조는 여기에서 찾을 수 있습니다: http://vita.had.co.nz/papers/boxplots.pdf
바이올린 플롯에는 matplotlib >= 1.4가 필요합니다.
바이올린 플롯에 대한 자세한 내용은 scikit-learn 문서에서 https://scikit-learn.org/stable/modules/density.html 의 훌륭한 섹션을 참조하세요.
import matplotlib.pyplot as plt
import numpy as np
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(9, 4))
# Fixing random state for reproducibility
np.random.seed(19680801)
# generate some random test data
all_data = [np.random.normal(0, std, 100) for std in range(6, 10)]
# plot violin plot
axs[0].violinplot(all_data,
showmeans=False,
showmedians=True)
axs[0].set_title('Violin plot')
# plot box plot
axs[1].boxplot(all_data)
axs[1].set_title('Box plot')
# adding horizontal grid lines
for ax in axs:
ax.yaxis.grid(True)
ax.set_xticks([y + 1 for y in range(len(all_data))],
labels=['x1', 'x2', 'x3', 'x4'])
ax.set_xlabel('Four separate samples')
ax.set_ylabel('Observed values')
plt.show()
![바이올린 플롯, 박스 플롯](/stable/_images/sphx_glr_boxplot_vs_violin_001.png)
참조
다음 함수, 메서드, 클래스 및 모듈의 사용이 이 예제에 표시됩니다.