Python/Basic Data Analysis

[Python] matplotlib 이용하여 누적영역형차트, 원형차트 그리기

JKyun 2018. 1. 2. 22:17

안녕하세요. 우주신 입니다.


저번 시간에 이어 matplotlib 이용하여 누적영역형차트, 원형차트 그리는 방법에 대해 포스팅 하겠습니다.


우선, 그래프를 만들 임의의 데이터를 생성하겠습니다. (정말 아무 의미 없는 값을 입력해 데이터 생성했어요;)



1. 누적영역형차트 (Stacked Area Graph)


누적영역형차트는 두 개 이상의 데이터 계열을 서로 누적하는 영역형 차트 입니다. 

특히, 제품별로 매출에 기여하는 정도를 시계열로 나열하여 한 눈에 쉽게 볼 수 있어 성과 분석을 위한 기본적인 그래프 중 하나 입니다.


plt.stackplot(beernum, price, amount, country)

-plt.stackplot() 함수 안에 4개의 리스트인 데이터를 입력했습니다. 

첫번째 데이터인 beernum이 X축의 기준이 되고 그 외의 데이터들은 순차적으로 누적되어 그래프에 표시됩니다.


출력 결과, 입력 순서대로 데이터 값이 누적되어 그려진 것을 확인할 수 있습니다.


위의 차트의 색을 바꾸고, 차트 제목 및 X축, Y축 이름을 설정 했습니다.

plt.stackplot(beernum, price, amount, country, colors = )

-colors 기능에 원하시는 색을 리스트로 입력하면 됩니다.




2. 원형차트(Pie Chart)


원형차트는 전체에 대한 각 부분의 비율을 부채꼴 모양으로 나타낸 그래프 입니다.


가격(price)을 원형 차트로 표현해보겠습니다.

plt.pie(price)

-plt.pie() 함수 안에 데이터(price)를 넣고 출력 했습니다.


가격의 데이터에 따른 비율을 색깔별로 구분하여 그려졌는데, 어떤 데이터의 비율인지 한 눈에 파악하기 애매합니다.


이를 활용하여, 맥주 넘버(beernum)에 따른 가격(price)을 원형 차트로 표현해보겠습니다.

plt.pie(price, labels=, colors=, startangle=, shadow=, explode=, autopct= )

-plt.pie() 함수 안에 주 데이터로 price를 입력하고,

labels= 기능으로 어떤 데이터를 기준으로 주 데이터를 구분할지 정합니다.

colors= 기능으로 색을 순차적으로 지정하고, startangle= 기능으로 첫 데이터(여기서는 1번 데이터)를 어떤 각도에서 그릴지 정합니다.

shadow= 기능은 말 그대로 그림자를 넣어 입체감을 줄 것인지,

explode= 파이를 밖으로 빼는 기능입니다. 여기서는 두번째 데이터를 0.1만큼 밖으로 뺐습니다.

autopct= 백분율을 그래프에 표시하는 기능입니다.


위 원형차트에 비해 더 정확하고 깔끔하게 표시된 것을 확인할 수 있습니다.




수고하셨습니다