본문 바로가기

efficiency

[Python] Matplotlib으로 데이터 시각화 1. 파이 차트 - data visualization, pie chart, seaborn color palette, 파이 차트 그리기

데이터를 다루는 일을 하다보면, 그래프를 그리는게 큰 흐름을 읽는데 도움이 될 때가 많더라구요.

많은 정보를 직관적으로 이해하기 위해서 그래프 그리는 일의 중요성을 느낍니다. 

 

오늘부터 시리즈로 Python Matplotlib 을 이용해서 그래프 그리는 방법을 포스팅해보려고 합니다.

 

저는 금융 데이터를 분석하는 일을 자주 하는데, 제가 일하면서 가장 자주 쓰는 그래프는 이렇게 네가지 입니다.

 

1. 파이차트 : 업권, 기업의 수익이나 비용 구조 파악

2. 선 그래프:  경제 변수의 트렌드나 변화를 파악

3. 산점도 (Scatter plot): 변수간 관계 파악

4. 박스 플롯(box plot)  또는 히스토그램: 변수의 분포 파악

 

이 네가지를 시리즈로 다루어보려고 하구요, 

오늘은 그중에 파이 차트부터 시작하겠습니다. 

 

 

Contents:

0. 라이브러리 불러오기 + 데이터 준비

1. 기본 파이 차트 그리기 + 제목 달기

2. 파이 면적 퍼센트 (비율) 표기하기

3. 그래프(파이의 면적) 색상 조정

 

 

 

 

0. 라이브러리 불러오기 + 데이터 준비

 

 

 

파이썬에서 그래프 그리기에 가장 많이 사용되는 라이브러리 중 하나는 matplotlib입니다. 

https://matplotlib.org/

 

Matplotlib — Visualization with Python

seaborn seaborn is a high level interface for drawing statistical graphics with Matplotlib. It aims to make visualization a central part of exploring and understanding complex datasets. statistical data visualization Cartopy Cartopy is a Python package des

matplotlib.org

 

matplotlib.pyplot

matplotlib을 사용하기 위해서 주로 matplotlib.pyplot을 사용해주는데요, pyplot은 matplotlib을 편하게 사용하기 위한 인터페이스라고 생각하시면 됩니다. 

 

seaborn

그리고 오늘 새롭게 소개하는 또다른 라이브러리는 seaborn입니다. matplotlib을 이용해서 그래프를 그릴 때 좀 더 멋지게 그릴 수 있는 툴을 제공해줍니다. 

 

https://seaborn.pydata.org/index.html

 

seaborn: statistical data visualization — seaborn 0.13.2 documentation

seaborn: statistical data visualization

seaborn.pydata.org

 

 

 

 

라이브러리를 불러왔으면, 그림을 그릴 데이터를 준비해볼게요.

아래와 같이 pandas dataframe 형태로 만들어보았습니다. 가상의 금융기관 수익 구조에 대한 데이터를 만들어보았어요.

이자로 80, 수수료로 10, 증권으로 5, 배당금으로 1, 기타 수익으로 4 만큼을 벌어들인다고 해보겠습니다. 

 

 

 

 

 

1. 기본 파이차트 그리기 + 제목 달기

 

 

 

  • plt.figure() :  새 그림을 만들어줍니다. 
  • plt.pie(y, labels=x) : 파이차트를 그리기 위해 수치에 해당하는 y값을 넣어주고, y의 label로 x를 지정해주었습니다.
    • x는 데이터 프레임의 칼럼값을 사용하였고
    • y로는 각 칼럼의 관측치들을 사용했습니다. 
  • plt.title("제목명"): 그래프의 제목을 달아줍니다. plt.title()은 파이차트뿐 아니라 향후 다룰 line 그래프나 산점도 등을 그릴때도 그대로 사용할 수 있습니다. 
  • plt.show() 로 그래프를 확인합니다. 

 

 

2. 파이 면적 퍼센트 (비율) 표기하기

 

파이차트는 주로 구성을 확인하는데 사용됩니다. 수익의 구성, 비용의 구성, 전체 우리나라 인구중 지역별 인구 분포, 남녀 성비 등등 비율을 직관적으로 이해하는데 도움이 되는데요, 

 

파이차트에 비율을 자동으로 달아주는 옵션이 있습니다.

  • autopct = 표기할 형식 : 데이터의 구성비를 자동으로 계산한 후 표기. 표기형식을 함께 지정해줄 수 있습니다. 예를 들어 위에서는 소숫점이하는 표기하지 않았는데요, 소숫점 2번째 자리까지 하려면 아래와 같이 바꿔줄 수 있습니다. 
plt.pie(y, labels=x, autopct="%.2f%%")

 

 

 

3. 그래프(파이의 면적) 색상 조정: seaborn 사용

 

plt.pie의 argument로 colors를 사용할 수 있습니다. 파이차트를 채워줄 색상을 지정해주는건데요, 이때 유용하게 사용할 수 있는 툴이 seaborn입니다. (seaborn을 위에서 sns라는 이름으로 불러왔었습니다. )

 

colors의 값으로 seaborn의 color_palette(sns.color_palette)를 사용해보았습니다. 이름 그대로 seaborn의 color_palette는 여러 색상을 보기 좋게 묶은 팔레트를 제공합니다. 굉장히 예쁜 팔레트들이 많아서 예쁜 색을 골라서 사용하는 재미도 있습니다.

위에서는 'pastel' 을 사용했고, 아래에서는 'flare'를 사용해보았습니다. 

 

 

https://seaborn.pydata.org/generated/seaborn.color_palette.html

 

seaborn.color_palette — seaborn 0.13.2 documentation

seaborn.color_palette seaborn.color_palette(palette=None, n_colors=None, desat=None, as_cmap=False) Return a list of colors or continuous colormap defining a palette. Possible palette values include: Name of a seaborn palette (deep, muted, bright, pastel,

seaborn.pydata.org

 

 

 

 

지금까지 파이썬 matplotlib으로  파이 차트를 그리는 기본적인 방법에 대해서 다루어 보았습니다.

이것 말고도 파이 차트를 도넛 모양으로 그린다던가, 그림자를 넣는다던가 등등 여러가지 옵션들을 넣어서 차트를 더 예쁘게 그릴 수 있으니 관심있는 분들은 하나씩 검색해보시길 추천드립니다.