콘텐츠로 이동

Chapter 13: 데이터 시각화 - 숫자를 그래프로

🎯 이 장에서 배우는 것

  • [ ] 수집한 데이터를 텍스트 막대그래프로 표현할 수 있다
  • [ ] 시간에 따른 변화 패턴을 시각적으로 확인할 수 있다

⏱️ 예상 학습 시간: 약 30분

📚 미리 알아야 할 것

  • 리스트에 데이터 저장하기 (Chapter 11)
  • 반복문으로 데이터 처리하기 (Chapter 12)

📚 핵심 개념

개념: 데이터 시각화

비유: 시각화는 숫자에 옷을 입히는 것과 같아요!

숫자만 볼 때:  23, 25, 28, 24, 22
              → "음... 대충 20도 정도?"

그래프로 볼 때:
08시 ████████ 23°C
10시 ██████████ 25°C  
12시 █████████████ 28°C  ← 점심때 가장 덥네!
14시 ██████████ 24°C
16시 ████████ 22°C

💡 핵심: 그래프로 보면 패턴이 한눈에 보여요!


🔨 따라하기

Step 1: 막대그래프 함수 만들기

코드:

def draw_bar(label, value, max_value=30):
    """값을 막대그래프로 표시"""
    bar_length = int(value / max_value * 20)  # 최대 20칸
    bar = "█" * bar_length
    print(f"{label} {bar} {value}")

# 테스트
draw_bar("온도", 25)

실행 결과:

온도 ████████████████ 25

Step 2: 시간별 온도 데이터 시각화

코드:

# 가상의 시간별 온도 데이터
times = ["08시", "10시", "12시", "14시", "16시"]
temps = [23, 25, 28, 24, 22]

print("=== 오늘의 온도 변화 ===\n")

for i in range(len(times)):
    draw_bar(times[i], temps[i])

실행 결과:

=== 오늘의 온도 변화 ===

08시 ███████████████ 23
10시 ████████████████ 25
12시 ██████████████████ 28
14시 ████████████████ 24
16시 ██████████████ 22

체크포인트: 12시에 막대가 가장 긴 게 보이시나요?


📝 전체 코드

def draw_bar(label, value, max_value=30):
    """값을 막대그래프로 표시"""
    bar_length = int(value / max_value * 20)
    bar = "█" * bar_length
    print(f"{label} {bar} {value}")

# 시간별 온도 데이터
times = ["08시", "10시", "12시", "14시", "16시"]
temps = [23, 25, 28, 24, 22]

print("=== 오늘의 온도 변화 ===\n")

for i in range(len(times)):
    draw_bar(times[i], temps[i])

# 최고/최저 온도 찾기
print(f"\n📈 최고: {max(temps)}°C")
print(f"📉 최저: {min(temps)}°C")

⚠️ 주의할 점

막대 길이가 0이 되는 경우

# max_value보다 훨씬 작은 값은 막대가 안 보일 수 있어요
draw_bar("미세", 1, max_value=100)  # 막대가 거의 안 보임

# 해결: max_value를 데이터에 맞게 조절하세요!


✅ 점검하기

  1. 왜 숫자보다 그래프가 좋을까요?
정답 확인 패턴(증가/감소, 최대/최소)을 한눈에 파악할 수 있어요!
  1. "█" * 5의 결과는?
정답 확인 `█████` - 문자열을 숫자만큼 반복합니다.

🚀 다음 장 미리보기

Chapter 14에서는 여러 센서 데이터를 하나의 대시보드로 통합해볼 거예요!
온도, 조도를 한 화면에서 모니터링하는 미니 프로젝트를 만들어봅니다. 🎛️