막대 그래프에 통계적 유의성 표시하기
막대 그래프(bar graph)에서 통계적으로 유의한 차이를 시각적으로 보여주려면 오차 막대(error bar)를 함께 그리는 것이 가장 효과적인 방법입니다. Python의 Matplotlib 라이브러리를 사용하면 평균값과 표준 편차를 한눈에 비교할 수 있는 전문적인 그래프를 몇 줄의 코드로 만들 수 있습니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 주변의 여백(padding)을 조정합니다.
- means(평균값), std(표준 편차), index, width(막대 너비), labels(레이블) 데이터를 생성합니다.
- subplots() 메서드로 figure와 subplot 집합을 만듭니다.
- bar() 메서드로 막대 그래프를 그립니다.
- errorbar() 메서드로 Y축 값에 대한 오차 막대를 표시하고, Y축 상한을 조정합니다.
- X축의 눈금(tick) 위치와 레이블을 설정합니다.
- show() 메서드로 완성된 그래프를 화면에 출력합니다.
예제 코드
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
means = (5, 15, 30, 40)
std = (2, 3, 4, 5)
index = np.arange(4)
width = 0.7
labels = ('A', 'B', 'C', 'D')
fig, ax = plt.subplots()
ax.p1 = plt.bar(index, means, width=width, color="red",
linewidth=2, zorder=5, alpha=0.5)
ax.errs = plt.errorbar(index, means, yerr=std)
plt.ylim(ymax=60)
plt.xticks(index, labels, color='k')
plt.show()코드 설명
means에는 각 그룹의 평균값을, std에는 해당 그룹의 표준 편차를 저장합니다. np.arange(4)로 X축 위치 인덱스를 만들고, alpha=0.5 옵션으로 막대를 반투명하게 처리하여 오차 막대가 잘 보이도록 합니다. yerr=std 인자가 각 막대 위에 표준 편차 크기만큼의 오차 막대를 그려줍니다.
실행 결과
위 코드를 실행하면 A, B, C, D 네 항목의 평균값을 나타내는 반투명 빨간색 막대와, 표준 편차를 나타내는 오차 막대가 함께 표시된 그래프가 출력됩니다. 이러한 시각화 방식을 활용하면 각 그룹 간의 변동성과 통계적으로 유의미한 차이를 직관적으로 파악할 수 있어 논문이나 보고서의 데이터 제시에 매우 유용합니다.