Project Jupyter(기온 공공데이터)-2024-06-14
1. 선 그래프 문제
요구사항
1) 서울의 날짜별 최고기온 변화를 선 그래프로 표현하세요.
2) CSV 파일에서 날짜와 최고기온 데이터를 읽어오세요.
3) matplotlib을 사용하여 날짜를 x축, 최고기온을 y축으로 하는 선 그래프를 그리세요.
4) 그래프 제목, x축 라벨, y축 라벨을 적절히 설정하세요.
예외 처리
1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리
2) 사례 : 파일이 없을 경우, 잘못된 수량 입력
3) 핵심 : 안정적인 프로그램 동작 보장
import csv
import matplotlib.pyplot as plt
f = open('seoul1.csv')
data = csv.reader(f)
next(data)
day = []
max_temp = []
for row in data:
if row[0] !='':
if row[0].split('-')[0]== '2023':
if row[4] != '':
day.append(row[0])
max_temp.append(float(row[-1]))
plt.rc('font', family = 'Malgun Gothic')
plt.figure(figsize = (10, 2))
plt.plot(max_temp)
plt.title('서울의 날짜별 최고기온 변화')
plt.xlabel("날짜")
plt.ylabel("최고기온(℃)")
plt.show()
plt.close()
2. 막대 그래프 문제
요구사항
1) 서울의 월별 평균기온 변화를 막대 그래프로 표현하세요.
2) CSV 파일에서 날짜와 평균기온 데이터를 읽어오세요.
3) matplotlib을 사용하여 월을 x축, 평균기온을 y축으로 하는 막대 그래프를 그리세요.
4) 그래프 제목, x축 라벨, y축 라벨을 적절히 설정하세요.
5) 그래프 제목, x축 라벨, y축 라벨을 적절히 설정하세요.
예외 처리
1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리
2) 사례 : 파일이 없을 경우, 잘못된 수량 입력
3) 핵심 : 안정적인 프로그램 동작 보장
f = open('seoul1.csv')
data = csv.reader(f)
next(data)
month = [[], [], [], [], [], [], [], [], [], [], [], []]
month_average = []
for row in data :
if row[2] != '':
date = row[0]
average_temp = float(row[2])
month[int(row[0].split('-')[1])-1].append(average_temp)
for temp in month:
month_average.append(sum(temp)/ len(temp))
plt.rc('font', family = 'Malgun Gothic')
plt.figure(figsize = (10, 2))
plt.bar(range(1, 13), month_average)
plt.title('서울의 월별 최고기온 변화')
plt.xlabel("월")
plt.ylabel("평균기온(℃)")
plt.show()
plt.close()
3. 히스토그램 문제
요구사항
1) 서울의 최저기온 분포를 히스토그램으로 표현하세요.
2) CSV 파일에서 최저기온 데이터를 읽어오세요.
3) matplotlib을 사용하여 최저기온을 x축, 빈도를 y축으로 하는 히스토그램을 그리세요.
4) 그래프 제목, x축 라벨, y축 라벨을 적절히 설정하세요.
예외 처리
1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리
2) 사례 : 파일이 없을 경우, 잘못된 수량 입력
3) 핵심 : 안정적인 프로그램 동작 보장
import csv
import matplotlib.pyplot as plt
f = open('seoul1.csv')
data = csv.reader(f)
next(data)
min_temp = []
for row in data:
if row[-2] != '':
min_temp.append(float(row[-2]))
plt.rc('font', family = 'Malgun Gothic')
plt.figure(figsize = (10, 2))
plt.title('서울의 최처기온 변화')
plt.xlabel("최저기온(℃)")
plt.ylabel("빈도")
plt.hist(min_temp, bins=20)
plt.show()
plt.close()
4. 상자 그림 문제
요구사항
1) 서울의 평균기온, 최저기온, 최고기온 지표를 상자 그림으로 비교하세요.
2) CSV 파일에서 평균기온, 최저기온, 최고기온 데이터를 읽어오세요.
3) matplotlib을 사용하여 기온 지표를 x축, 기온 값을 y축으로 하는 상자 그림을 그리세요.
4) 그래프 제목, x축 라벨, y축 라벨을 적절히 설정하세요.
예외 처리
1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리
2) 사례 : 파일이 없을 경우, 잘못된 수량 입력
3) 핵심 : 안정적인 프로그램 동작 보장
f = open('seoul1.csv')
data = csv.reader(f)
next(data)
average_temps = []
min_temps = []
max_temps = []
for row in data:
if row[2] != '' and row[3] != '' and row[-1] != '':
average_temps.append(float(row[2]))
min_temps.append(float(row[3]))
max_temps.append(float(row[4]))
plt.rc('font', family = 'Malgun Gothic')
plt.figure(figsize = (10, 2))
plt.title('서울의 기온지표 변화')
plt.xlabel("기온지표")
plt.ylabel("기온(℃)")
plt.boxplot([average_temps, min_temps, max_temps], labels=['평균기온', '최저기온', '최고기온'])
plt.show()
plt.close()