그래프 그리기 2편 막대그래프 (bar graph), 원 그래프(pie chart) , 버블 차트(bubble chart) 야나두 딥러닝

    강의 시간 질문이 광범위 해서,  2번째 주제를 접하는데,   2번째 주제는  사실상  모델링 하기전에 미리 데이터 탐색용도로는 쓰이지 않고 사람이 보고 직관적으로 분석 하는 그래프이다.  실제로는 2번째 주제의 그래프가 많이 쓰이는데,   2번째 주제에 대한 그래프는 R이나 파이썬 같은 것보다는 파워포인트나 엑셀에서 작성 하는 것이 훨씬 좋다.   

엑셀이나 파워포인트에 이러한 기능 들이 잘 들어가 있다. 


파이썬 그래프 툴


그래도 대량의 데이터는 엑셀이나 파워포인트에서는 할수 없으니,  여기에서 다루어 보겠다. 


막대그래프

  막대그래프는 비교를 위한 그래프이다.   업무 에서는   예산실적 계획대비 실적을 보는 것이 대표적인 막대그래프의 성격을 가지고 있지 않을까 한다.   그리고,  나라별 소득 비교,  남녀, 키 몸무게 비교 등 여러가지로 쓰일 수 있다. 

 아래는 각 지게차 톤수별 일평균 주유량을  아래와 같이 나타낸 것이다.


# libraries
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

#Make a dataset 지게차 톤수별 1회 평균 주유량
oil = [3035404245]
ton = ['5TON''7TON''10TON''11TON''15TON']
y_pos = np.arange(len(ton))


# Create bars
plt.bar(y_pos, oil)
# 색상 변경 옵션
# plt.bar(x_pos, height, color=['black', 'red', 'green', 'blue', 'cyan']) 

# Create names on the x-axis
plt.xticks(y_pos, ton)

# Show graphic
plt.show()

막대그래프


막대 그래프는 계획 대비 실적 그래프를 반드시 그려서, 기능화 하지 않는 이상은 이 정도 까지 하는 것이 좋을 것 같다.   더 이상 하려면 매우 복잡 하다. 

원그래프 (pie chart)

 원 그래프는 데이터의 비중을 보여주기 위한 차트이다.  이것도 막대 그래프와 마찮가지로, 모델을 만들기 전 분석하기 위하여 쓰이지는 않는다.   직관적으로 보기 위해서 사용한다. 

만약에 구글 코랩을 사용하고 있다면 아래 페이지를 클릭 하여, 한글 깨짐 현상을 해결 해야 한다. 


만약에 분류해야 하는 갯수가 적을 때는 파이차트가 좋다.     
아래는  2019년 가구원수별 가구구성을 나타낸 파이 차트이다. 



names = ['1인가구''2인가구''3인가구''4인가구','5인가구','6인이상']
values = [30.227.820.716.23.91.0]

plt.pie(values, labels=names, labeldistance=1.15);
plt.show();



파이차트


Tree Map


만약에 분류 하는 것이 많아,  파이 차트로 구분이 어려울 때는  TreeMap을 권장 한다. 
이것 또한 엑셀이나,  파워포인트에 전부 있는 기능이므로,  업무 할 때는 그다지 중요하지 않다.  하지만,  이걸 기능화 시킨다면,  많은 옵션을 넣어야 한다. 

만약에 구글 코랩을 사용하고 있다면    아래와 같은 작업을 하여야 한다. 

!pip install squarify

efec19819cd1d729540d4d235e6c2a3f37658288a363a67da5/squarify-0.4.3-py3-none-any.whl Installing collected packages: squarify Successfully installed squarify-0.4.3


import squarify 
pop = [991344,  245,  301,  147,  148,  115,  361381156,  164,  219,  184,  188,  269,  341,  70]
prov= ['서울',  '부산''대구''인천''광주''대전''울산''세종''경기''강원'
       '충북',  '충남''전북''전남''경북''경남''제주']

트리맵



버블 차트 (bubble chart) 

  각 데이터의 분포만 보았는데,  분포의 크기도 같이  봐야 할 필요성이 있을때도 있다.  이럴때는 버블 차트를 봐야 하는데,  버블 차트는 2가지 용도가 있다. 
 
첫번째 용도는  데이터의 범주를 구분 시킬 때 유용하고,
두번재 용도는  산포된 점의 크기의 비중을 볼때 유용하다. 


아래는 gapminder의 대표적인 그래프이다.   gapminder 라는 모듈이 파이썬에 존재 한다. 아래의  변수의 정의는 아래와 같다. 

  • gdpPercap : 1인당 GPD
  • lifeExp :  기대수명
  • pop : 인구   
아래 그래프를 해석 하면,  1인당 gep와 기대 수명 간의 관계를 나타낸 것이고,  원의 크기는 인구를 나타낸 것이다.    
아래의 그래프를 보면 약간 흥미로운 것이 있다.   소득 수준이 낮은데,  기대 수명이 높은 곳이 있다.  이곳은 인구가 가장 많은 중국이다. 

 만약 에 gapminder 데이셋 모듈이 설치 되어 있지 않으면,  아래와 같이 설치 한다. 

!pip install gapminder

아래와 같이 seaborn 패키지의 sctterplot의 함수를 이용해서 버블차트를 그린다.



from gapminder import gapminder # data set

# data
data = gapminder.loc[gapminder.year == 2007]

# use the scatterplot function to build the bubble map
sns.scatterplot(data=data, x="gdpPercap", y="lifeExp", size="pop", legend=False, sizes=(202000))

# show the graph
plt.show()
버블차트


애니메이션 차트도 있지만,  블로그에서 표현하기에는 무리가 있어서,  Python의 챠트는 여기 까지 한다. 









댓글 없음:

댓글 쓰기

css cheat sheet 클래스 선택자, margin(마진), display , center 조정 간단한 구성 요소

 앞에서는 html의 간단한 sheet를 소개 하였습니다.   html은  주로 골격을 나타나는 것이라, 디자인을 하는데는 css로 하여야 합니다.  아래 코드와 같이 css 관련 하여 매우 간단하게 코딩 하겠습니다.  body 부분의 css 코딩  ...