ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python/matplotlib] 월 최고 기온 데이터 비교를 위한 막대그래프 그리기
    Study/Python 2022. 1. 14. 16:54

     

     

     

     

    특정 월의 최고 기온 비교를 위한 막대 그래프 시각화

     

    import csv
    import matplotlib.pyplot as plt
    
    f = open('seoul.csv')
    data = csv.reader(f)
    next(data)
    jan = []
    jul = []
    
    for row in data:
        month = row[0].split('-')[1]
        if row[-1] != '':
            if month == '01':
                jan.append(float(row[-1]))
            if month == '07':
                jul.append(float(row[-1]))
                    
    plt.rc('font', family = 'Malgun Gothic')
    plt.rcParams['axes.unicode_minus'] = False
            
    plt.hist(jan, bins=100, color='b')
    plt.hist(jul, bins=100, color='r')
    plt.title('1월&7월의 최고온도')
    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. 데이터 시각화를 위한 변수 선언

     

    jan = []
    jul = []

     - 각각 1월과 7월의 최고 기온 데이터를 저장하기 위해 jan과 jul이라는 리스트 형태의 변수를 선언한다.

     

     

     

    4. 공공데이터로부터 원하는 데이터 추출 및 저장

     

    for row in data:
        month = row[0].split('-')[1]
        if row[-1] != '':
            if month == '01':
                jan.append(float(row[-1]))
            if month == '07':
                jul.append(float(row[-1]))

     - for row in data를 이용하여 모든 데이터를 한 줄 씩 읽는다.

     - 0번째 줄(날짜)을 '-'로 split하였을 때 1번째 문자열(월)을 month에 저장한다.

     - 만약 해당 데이터가 비어있지 않다면 (공백 데이터 처리)

     - 만약 month가 '01'(1월)이라면

     - jan 리스트에 해당 최고 기온 데이터를 float 형으로 변환하여 추가한다.

     - 만약 month가 '07'(7월)이라면

     - jul 리스트에 해당 최고 기온 데이터를 float 형으로 변환하여 추가한다.

     

     

     

    5. 시각화 기본 설정

     

    plt.rc('font', family = 'Malgun Gothic')
    plt.rcParams['axes.unicode_minus'] = False

     - 한글을 사용할 것이므로 폰트를 맑은 고딕으로 설정한다.

     - 마이너스 기호가 깨지는 것을 방지한다.

     

     

     

    6. 그래프 그리기

     

    plt.hist(jan, bins=100, color='b')
    plt.hist(jul, bins=100, color='r')

     - plt.hist()를 이용하여 막대그래프를 그린다. jan 리스트를 이용하며, 100 단위로 나누고, 푸른 색상으로 나타낸다.

     - plt.hist()를 이용하여 막대그래프를 그린다. jul 리스트를 이용하며, 100 단위로 나누고, 붉은 색상으로 나타낸다.

     

     

     

    7. 화면에 나타내기

     

    plt.title('1월&7월의 최고온도')
    plt.show()

     - plt.title()을 이용하여 제목을 '1월&7월의 최고온도'로 지정한다.

     - plt.show()를 이용하여 화면에 그래프를 나타낸다.

     

     

     

     

     

    출력된 그래프

     

Designed by Tistory.