-
[Python/Matplotlib] 작년과 올해 특정 월의 최고 기온 차이 박스 플롯 그래프 그리기Study/Python 2022. 1. 17. 16:25
작년과 올해 특정 월의 최고 기온의 차이를 비교하기 위해 박스 플롯(box plot) 그래프 시각화하기
import csv import matplotlib.pyplot as plt f = open('seoul.csv') data = csv.reader(f) next(data) tem = [[], []] for row in data: year = row[0].split('-')[0] month = row[0].split('-')[1] if row[-1] != '': if year == '2020' and month == '08': tem[0].append(float(row[-1])) if year == '2021' and month == '08': tem[1].append(float(row[-1])) plt.rc('font', family = 'Malgun Gothic') plt.rcParams['axes.unicode_minus'] = False plt.boxplot(tem) plt.title('작년과 올해의 8월달 최고 기온 차이') plt.show()
전체 코드
1. 라이브러리 및 모듈 import
import csv import matplotlib.pyplot as plt
- csv 파일을 읽기 위해 csv 모듈을 import한다.
- 그래프를 그려 시각화 하기 위해 matplotlib 라이브러리의 pyplot 모듈을 import한다.
2. csv 공공데이터 읽어오기
f = open('seoul.csv') data = csv.reader(f) next(data)
- open()을 이용하여 seoul.csv 파일을 f에 저장한다.
- csv.reader()를 이용하여 f에 저장된 공공 기온 데이터를 읽어와 data에 저장한다.
- next()를 이용하여 data 데이터에서 헤더를 제거한다.
3. 데이터 시각화를 위한 변수 선언
tem = [[], []]
- 각각 작년과 올해의 최고 기온 데이터를 담기 위해 2차원 리스트 변수 tem을 선언한다.
4. 공공데이터로부터 원하는 데이터 추출 및 저장
for row in data: year = row[0].split('-')[0] month = row[0].split('-')[1] if row[-1] != '': if year == '2020' and month == '08': tem[0].append(float(row[-1])) if year == '2021' and month == '08': tem[1].append(float(row[-1]))
- for row in data를 이용하여 모든 데이터를 한 줄 씩 읽는다.
- 몇 년도의 데이터인지 확인하기 위하여 0번째 데이터(날짜)를 '-'로 split하였을때 0번째 문자열(년도)을 year로 저장한다.
- 무슨 달의 데이터인지 확인하기 위하여 0번째 데이터(날짜)를 '-'로 split하였을때 1번째 문자열(월)을 month로 저장한다.
- 만약 해당하는 데이터가 존재한다면 (공백 데이터 제외)
- 만약 year이 2020이고 month가 8월이라면 (작년의 8월 데이터만 추출)
- tem의 0번째 리스트로 최고 기온 데이터들을 추가한다.
- 만약 year이 2021이고 month가 8월이라면 (올해의 8월 데이터만 추출)
- tem의 1번째 리스트로 최고 기온 데이터들을 추가한다.
5. 그래프를 그리기 위한 기본 설정
plt.rc('font', family = 'Malgun Gothic') plt.rcParams['axes.unicode_minus'] = False
- plt.rc()를 이용하여 한글 폰트를 맑은 고딕으로 설정한다.
- plt.rcParams를 이용하여 마이너스 기호가 깨지지 않도록 설정한다.
6. 그래프를 그리고 화면에 나타내기
plt.boxplot(tem) plt.title('작년과 올해의 8월달 최고 기온 차이') plt.show()
- plt.boxplot()과 tem 리스트를 이용하여 박스 플롯 그래프를 그린다.
- plt.title()을 이용하여 제목을 '작년과 올해의 8월달 최고 기온 차이'로 설정한다.
- plt.show()를 이용하여 그래프를 화면에 나타낸다.
출력된 그래프
'Study > Python' 카테고리의 다른 글
[Python/Matplotlib] 지역 이름 입력받아 해당 지역의 연령별 인구 분포 꺾은 선 그래프 출력하기 (0) 2022.01.19 [Python/Matplotlib] 특정 지역의 연령별 인구 수로 꺾은 선 그래프 그리기 (0) 2022.01.18 [Python/Matplotlib] 특정 월의 최고 기온 비교를 위한 박스 플롯 그래프 시각화 (0) 2022.01.16 [Python/matplotlib] 월 최고 기온 데이터 비교를 위한 막대그래프 그리기 (0) 2022.01.14 [Python/Matplotlib] 기온 csv파일을 읽어와서 데이터 분석 (0) 2022.01.13