코딩 연습

(파이썬) 막대 그래프 그리기 본문

Python

(파이썬) 막대 그래프 그리기

코딩아저씨 2016. 3. 15. 16:22
반응형

파이썬을 이용한 막대 그래프 그리기에 대해 알아보겠다. 예제에서는 KOSIS에서 얻은 2010년부터 2014년까지의 서울지역 평균기온을 사용하였다. 다음의 코드를 barchart.py 로 저장한 후, 터미널에서 python barchart.py를 해주면 그래프를 볼 수 있다. 

import matplotlib.pyplot as plt


def barchart(data, labels):
    num_bars = len(data)
    positions = range(1, num_bars + 1)
    plt.barh(positions, data, align='center')
    plt.yticks(positions, labels)
    plt.xlabel('Temperature')
    plt.ylabel('Year')
    plt.title('Average Temperature in Seoul 2010 ~ 2014')
    plt.grid()
    plt.show()


if __name__ == "__main__":
    temperature = [12.1, 12.0, 12.2, 12.5, 13.4]
    year = [2010, 2011, 2012, 2013, 2014]
    barchart(temperature, year)

예제에서는 가로 막대 그래프가 그려지고,  \(\rm year\)는 그래프의 라벨로 사용될 것이다. 

\(\rm positions\) 는 막대 그래프가 자리잡게 될 \(y\) 축의 좌표를 리스트의 형태로 갖게 된다. 즉, 2010년의 평균기온은 \(y\) 좌표가 \(1\) 인 위치에, 2011년의 평균기온은 \(y\) 좌표가 \(2\) 인 위치에, \(\cdots\) 자리잡게 되는 것이다. j

\(\rm plt.barh(positions, \;data,\;align='center')\) 에서는 각 포지션 (\(y\) 좌표가 \(1, \;2,\;3,\; 4,\;5\))에 크기가 해당 데이터와 같은 막대 그래프를 생성하되, 막대 그래프의 중앙이 해당 포지션에 위치하도록 그리라고 하고 있다.

\(\rm plt.yticks(positions, \; labels)\) 에서는 각 포지션에 라벨을 매칭시키는 작업을 하고 있다. 

\(\rm plt.grid()\) 에서는 막대들의 길이를 비교하기 쉽게 하기 위하여 그래프에 격자 무늬를 만들고 있다.

이렇게 해서 얻은 그래프는 다음과 같다. 



 

반응형


Comments