Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Matplotlib 막대 그래프에서 통계적으로 유의한 차이 표시하는 방법

막대 그래프에 통계적 유의성 표시하기

막대 그래프(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 네 항목의 평균값을 나타내는 반투명 빨간색 막대와, 표준 편차를 나타내는 오차 막대가 함께 표시된 그래프가 출력됩니다. 이러한 시각화 방식을 활용하면 각 그룹 간의 변동성과 통계적으로 유의미한 차이를 직관적으로 파악할 수 있어 논문이나 보고서의 데이터 제시에 매우 유용합니다.