PROGRESS
4 / 10
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 04 #374
공부 시간과 시험 점수의 관계를 산점도(흩뿌림 그래프)로 시각화하는 프로그램입니다. 빈칸을 채워 그래프를 완성하세요.
main.py
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
hours = [1, 2, 3, 4, 5, 6, 7, 8]
scores = [30, 45, 50, 60, 72, 80, 85, 95]
# 산점도를 그립니다.
plt.(hours, scores)
plt.title('Study Hours vs Scores')
plt.show()
print("학생 수:", len(hours))
print("최고 점수:", max(scores))
HINT
힌트: "흩뿌리다"라는 뜻의 영어 단어 scatter()를 함수 이름으로 사용합니다.
실행 결과 예시
학생 수: 8 최고 점수: 95
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
산점도 (Scatter Plot)
산점도는 두 변수의 관계를 점(dot)으로 표현하여 상관관계를 시각적으로 확인하는 그래프입니다.
기본 문법
plt.scatter(x데이터, y데이터)
산점도에서 읽을 수 있는 관계
양의 상관관계: 음의 상관관계: 상관 없음:
점수 ↑ · · 점수 ↑ · · 점수 ↑ · ·
| · · | · · | · · ·
| · · | · · |· · ·
|· · | · · | · · ·
+------→ +------→ +------→
공부시간 게임시간 신발 사이즈
scatter() vs plot() 비교
| 비교 | scatter() | plot() |
|---|---|---|
| 표현 | 점만 찍음 | 점을 선으로 연결 |
| 용도 | 두 변수의 관계 분석 | 시간에 따른 변화 추적 |
| x축 | 독립적인 값 (순서 무관) | 순서가 있는 값 (시간) |
점의 크기와 색상 변경
# 크기 변경 (s)
plt.scatter(hours, scores, s=100)
# 색상 변경 (c 또는 color)
plt.scatter(hours, scores, color='red')
# 크기와 색상 동시에
plt.scatter(hours, scores, s=80, color='green', alpha=0.7)
| 옵션 | 설명 | 예시 |
|---|---|---|
s |
점의 크기 | s=100 |
color |
점의 색상 | color='red' |
alpha |
투명도 (0~1) | alpha=0.5 (반투명) |
marker |
점의 모양 | marker='^' (삼각형) |
corr()와 함께 활용
# 수치로 상관관계 확인
df.corr()
# 시각적으로 상관관계 확인
plt.scatter(df['공부시간'], df['점수'])
💡 핵심: 산점도는 상관관계를 눈으로 확인하는 그래프입니다. corr()의 시각화 버전이라고 생각하세요.