히스토그램 그리기 : plt.hist()

30 P
QUESTION 05 #375
학생들의 시험 점수 분포를 히스토그램으로 시각화하는 프로그램입니다. 빈칸을 채워 데이터를 5개 구간으로 나누는 히스토그램을 완성하세요.
main.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt

scores = [55, 60, 62, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92, 95, 98]

# 히스토그램을 그립니다. bins는 구간(막대) 수입니다.
plt.(scores, bins=)
plt.title('Score Distribution')
plt.show()

print("학생 수:", len(scores))
print("평균 점수:", sum(scores) // len(scores))
실행 결과 예시
학생 수: 15
평균 점수: 78
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

히스토그램 (Histogram)

히스토그램은 데이터의 분포(어디에 많이 모여 있는지)를 보여주는 그래프입니다.

기본 문법

plt.hist(데이터, bins=구간수)

히스토그램 vs 막대 그래프

비교 히스토그램 (hist) 막대 그래프 (bar)
x축 연속된 숫자 구간 독립적인 항목(카테고리)
막대 간격 붙어 있음 떨어져 있음
용도 데이터 분포 확인 항목별 비교
예시 점수 분포, 나이 분포 과일별 판매량

bins(구간 수)의 역할

같은 데이터도 bins에 따라 그래프가 달라집니다:

bins=3 (3구간):         bins=5 (5구간):
■■■■■                   ■■■
■■■■■ ■■■■              ■■■ ■■■
■■■■■ ■■■■ ■■           ■■■ ■■■ ■■ ■■■ ■■
+-----+----+--+         +--+--+--+--+--+
55   70   85  100       55 64 73 82 91 100
bins 구간 폭 특징
너무 적음 (3) 넓음 세부 분포가 안 보임
적절함 (5~10) 보통 분포 파악에 좋음
너무 많음 (30) 좁음 들쭉날쭉해서 패턴 파악 어려움

동작 과정 (bins=5)

scores = [55, 60, 62, 70, 72, 75, 78, 80, 82, 85, 88, 90, 92, 95, 98]
구간 범위 해당 학생 수
1구간 55 ~ 63.6 3명 (55, 60, 62)
2구간 63.6 ~ 72.2 2명 (70, 72)
3구간 72.2 ~ 80.8 3명 (75, 78, 80)
4구간 80.8 ~ 89.4 3명 (82, 85, 88)
5구간 89.4 ~ 98.0 4명 (90, 92, 95, 98)

히스토그램 꾸미기

plt.hist(scores, bins=5,
         color='skyblue',     # 막대 색상
         edgecolor='black',   # 테두리 색상
         alpha=0.8)            # 투명도

💡 핵심: 히스토그램은 데이터의 분포를 파악하는 그래프이며, bins로 구간 수를 조절합니다.