데이터 분석 · AI 기초집LESSON 14
데이터 시각화: 막대·선·산점도 그래프를 올바르게 읽기
난이도초급
예상 시간35분
선수지식이전 강의
14강. 데이터 시각화: 막대·선·산점도 그래프를 올바르게 읽기
1. 이번 강의에서 해결할 문제
그래프 종류와 축 범위를 잘못 선택하면 작은 차이를 과장하거나 시간 순서를 숨길 수 있습니다. 질문과 변수 타입에 맞는 시각화가 필요합니다.
2. 학습 목표
3. 핵심 개념
막대그래프는 범주별 집계, 선그래프는 순서 있는 시간 변화, 산점도는 두 수치 변수의 관계를 살피는 데 적합합니다. 축을 자르거나 집계 기준을 숨기면 차이가 왜곡됩니다. 그래프에는 지표 정의와 표본 수를 연결하고 인과관계로 확대하지 않습니다.
4. 단계별 실습
1. 예제 파일 작성
실행 환경: 코드 편집기
실행 위치: C:\dev\game-data-lab
실행 전 확인: 기존 파일이 있으면 내용을 덮어쓰지 말고 Git diff로 이번 강의 변경 범위를 확인합니다. 실제 개인정보·API Key·토큰은 사용하지 않습니다.
대상 파일: src/create_charts.py
src/create_charts.py
from pathlib import Path
import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("data/processed/analysis_sessions.csv", parse_dates=["match_date"])
character = df.groupby("character").agg(win_rate=("win", "mean"), matches=("win", "size"))
daily = df.groupby("match_date").size()
Path("reports/figures").mkdir(parents=True, exist_ok=True)
fig, axes = plt.subplots(1, 3, figsize=(14, 4))
character["win_rate"].plot.bar(ax=axes[0], ylim=(0, 1), title="Win rate by character")
daily.plot.line(ax=axes[1], marker="o", title="Matches by date")
axes[2].scatter(df["play_minutes"], df["score"], alpha=0.75)
axes[2].set(title="Play time and score", xlabel="minutes", ylabel="score")
fig.tight_layout()
fig.savefig("reports/figures/analysis_overview.png", dpi=150)
plt.close(fig)
print(character.round(3))
2. 실행과 결과 확인
실행 환경: Windows PowerShell
실행 위치: C:\dev\game-data-lab
실행 전 확인: Python 코드는 프로젝트의 .venv 인터프리터를 사용하고 입력 파일 경로가 존재하는지 확인합니다.
대상: src/create_charts.py과 이 강의가 만드는 출력
Windows PowerShell
Set-Location C:\dev\game-data-lab
.\.venv\Scripts\python.exe .\src\create_charts.py
Get-Item .\reports\figures\analysis_overview.png
예상 결과: 캐릭터 승률 표와 막대·선·산점도를 담은 PNG가 생성됩니다.
5. 분석 또는 모델이 동작하는 이유
집계 결과를 막대로 표현하면 범주 비교가 명확하고 날짜 인덱스는 선의 순서를 결정합니다. 산점도는 각 관찰을 보존해 평균만으로 보이지 않는 퍼짐을 보여 줍니다.
6. 자주 하는 실수와 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2데이터 시각화: 막대·선·산점도 그래프를 올바르게 읽기 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
14강. 데이터 시각화: 막대·선·산점도 그래프를 올바르게 읽기 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.