본문 바로가기
python/python 수업

데이터시각화 matplot weather0106

by sj0020 2020. 9. 8.
import csv
f = open('weather0106.csv', encoding='cp949')
data = csv.reader(f, delimiter=',')
header = next(data) # 첫줄 날짜,지점,최고... 띄워넘으려면 넣어야됨

import matplotlib.pyplot as plt

birth_list = [] #생일 리스트
max_temp = 0 #최고기온 값
min_temp = 0 #최저기온 값
max_range = 0 #최고 일교차 값
temp_range = 0 #일교차 값
daily_range = [] #생일날들의 일교차를 요소로 가진 리스트
maxmax_temp=[] # 최고기온 리스트
minmin_temp=[] #최저기온 리스트
birth_dailyrange = {} #{생일 : 일교차} 딕셔너리


for row in data :
  if '-01-06' in row[0] :
    birth_list.append(row[0])   #생일 리스트 생성
    max_temp = float(row[-1])
    min_temp = float(row[-2])
    temp_range = max_temp - min_temp
    daily_range.append(round(temp_range,2)) ##생일날들의 일교차를 요소로 가진 리스트 생성(소수 2번째자리 rounding)
    maxmax_temp.append(round(max_temp,2)) 
    minmin_temp.append(round(min_temp,2)) 

print("제 생년월일은 %s 입니다" %birth_list[0])

for i in range(len(birth_list)) :
  print("%s의 일교차는 %.2f입니다." %(birth_list[i], daily_range[i]))


birth_dailyrange = {x : y for x, y in zip(birth_list, daily_range)} #{생일 : 일교차} 딕셔너리 생성

for i in range(len(daily_range)) :  #최고 일교차 값 구하기
  if daily_range[i] > temp_range :
    temp_range = daily_range[i]


print("제 생일 중 가장 일교차가 큰 날은 %s이고, 일교차는 %.2f 입니다." %([k for k, v in birth_dailyrange.items() if v == temp_range], temp_range))


f.close()

 

plt.rc('font', size=20)
plt.rcParams["figure.figsize"] = (70,20)
plt.xlabel('date', fontsize=20)
plt.ylabel('daily range', fontsize=20)  
plt.plot(birth_list,daily_range, label='daily_range') 
plt.plot(birth_list,maxmax_temp, label='mx temp')
plt.plot(birth_list,minmin_temp, label='mn temp')
plt.legend(loc=2, fontsize=30)

plt.show()

'python > python 수업' 카테고리의 다른 글

딕셔너리 key/value 로 정렬  (0) 2020.09.08
fairytale slicing  (0) 2020.09.08
과제 - 생일 일교차  (0) 2020.08.28
weather - colab 최고온도  (0) 2020.08.18
p165 예제 lambda로  (0) 2020.08.17