Why Not SW CAMP 5기/수업 기록
[2월 1주차-2/6(2)]🎂 내 생일의 기온 변화를 시각화하기
rubii
2025. 2. 6. 12:07
이번에는 1983년 이후 매년 내 생일(3월 3일)의 최고 기온과 최저 기온을 추출하여 시각화하는 방법을 정리해보겠습니다.
CSV 파일에서 특정 날짜의 데이터를 추출한 후, Matplotlib을 활용해 시각화할 것입니다.
📌 1. CSV 데이터에서 특정 날짜의 기온 추출하기
우선, seoul.csv 파일에서 내 생일(3월 3일)의 최고/최저 기온을 찾는 코드입니다.
import csv
import matplotlib.pyplot as plt
# CSV 파일 읽기
f = open('./data/seoul.csv')
data = csv.reader(f)
next(data) # 헤더 제거
high = [] # 최고 기온 리스트
low = [] # 최저 기온 리스트
for row in data:
if row[-1] != '' and row[-2] != '': # 결측치가 없는 데이터만 사용
date_split = row[0].split('-') # 날짜를 '-' 기준으로 분리
if 1983 <= int(date_split[0]): # 1983년 이후 데이터만 사용
if date_split[1] == '03' and date_split[2] == '03': # 3월 3일 데이터만
high.append(float(row[-1])) # 최고 기온
low.append(float(row[-2])) # 최저 기온
✅ 설명
- CSV 데이터를 읽고, split('-')을 활용해 날짜를 연도, 월, 일로 분리합니다.
- 1983년 이후 3월 3일의 데이터만 추출하여 high 리스트(최고 기온)와 low 리스트(최저 기온)에 저장합니다.
📌 2. Matplotlib을 활용한 시각화
이제 high와 low 데이터를 그래프로 시각화해 보겠습니다.
# 맑은 고딕으로 기본 글꼴 설정
plt.rc('font', family='Malgun Gothic')
# 마이너스 기호 깨짐 방지
plt.rcParams['axes.unicode_minus'] = False
plt.figure(figsize=(10,6), dpi=300) # 그래프 크기 및 해상도 설정
plt.title('내 생일(3월 3일)의 최고 & 최저 기온 변화')
# 최고 기온 (빨간색 점선)
plt.plot(high, 'red', label='최고 기온', linestyle='--')
# 최저 기온 (파란색 점선)
plt.plot(low, 'blue', label='최저 기온', linestyle=':')
plt.legend() # 범례 추가
plt.show()
✅ 설명
- plt.rc('font', family='Malgun Gothic') → 한글 폰트 적용
- plt.rcParams['axes.unicode_minus'] = False → 마이너스 기호 깨짐 방지
- plt.figure(figsize=(10,6), dpi=300) → 그래프 크기 및 해상도 설정
- 최고 기온은 빨간색 점선('red', linestyle='--'), 최저 기온은 파란색 점선('blue', linestyle=':')으로 표시
- plt.legend() → 범례 추가
📊 3. 최종 결과