Matplotlib 중급

박스 플롯과 바이올린 플롯

ax.boxplot과 ax.violinplot으로 여러 그룹의 분산을 비교합니다.

소개

평균값 막대 그래프로는 값이 얼마나 퍼져 있는지 알 수 없습니다. 박스 플롯은 중앙값, 데이터의 가운데 절반(상자), 일반적인 범위(수염), 이상값(점)을 보여 줍니다. 바이올린 플롯은 그룹별 분포의 전체 모양을 보여 줍니다.

scores의 리스트 하나가 상자 하나가 됩니다. 상자 안의 선이 중앙값이고, 상자는 점수의 가운데 50%를, 수염은 이상값이 아닌 가장 먼 값까지를 나타냅니다. B반의 상자가 훨씬 작은 것은 점수가 서로 가깝다는 뜻입니다. set_xticks는 x = 1, 2, 3에 있는 상자에 이름을 붙이며, ax.violinplot(scores)를 쓰면 같은 그룹이 바이올린으로 그려집니다.

인터랙티브 시각화

박스 플롯과 바이올린 플롯을 바꿔 보고, 점수를 하나하나 점으로 표시하고, C반의 분산을 바꿔 보세요.

실행 가능한 Matplotlib 예제

Matplotlib
코드 실행 →
main.py
import matplotlib.pyplot as plt
import numpy as np

rng = np.random.default_rng(5)
scores = [rng.normal(70, 8, 80), rng.normal(75, 4, 80), rng.normal(65, 12, 80)]

fig, ax = plt.subplots(figsize=(7, 4))
ax.boxplot(scores)
ax.set_xticks([1, 2, 3], ["Class A", "Class B", "Class C"])
ax.set_ylabel("Score")
ax.set_title("Test scores by class")
plt.show()
이 예제의 실행 버튼 만들기 이 코드가 그리는 차트
박스 플롯과 바이올린 플롯