2022 데이터 사이언스/빅데이터 분석과 모델링

06. 데이터 시각화: matplotlib, seaborn

gool 2022. 6. 20. 18:55
matplotlib, seaborn은 Python의 가장 기본적인 시각화 툴이다.

 

 

 

matplotlib

 

시각화 라이브러리의 특징은 모든 속성을 알고 외워서 사용할 수 없다는 것이다.

matplotlib 라이브러리 역시 데이터를 시각화하고 편집하는 정말 많은 속성을 포함하고 있다.

어떤 식의 세팅, 수정이 가능한지 알고 있으면 공식 문서나 구글 검색에서 찾아 사용할 수 있다.

명령어를 외우는 것보다 그래프의 어떤 부분을 어떻게 바꿀 수 있는지 아는 것이 중요하다.

 

다음은 matplotlib 공식 문서의 링크이다.

Quick-start guide에서 다양한 활용법을 찾아볼 수 있다.

 

https://matplotlib.org/stable/index.html

 

Matplotlib documentation — Matplotlib 3.5.2 documentation

 

matplotlib.org

 

 

 

아래는 matplotlib 공식 문서 Basic Usage 튜토리얼의 'Parts of a Figure' 그림이며,

그래프를 구성하는 요소와 속성들을 확인할 수 있다.

굵게 처리된 파란 글자는 속성의 이름을 나타내며,

속성 이름 밑에는 matplotlib으로 해당 속성에 접근하는 메소드가 적혀 있다.

 

  • Figure  :  그래프가 그려지는 바탕 전체를 의미하는 가장 상위의 개념
  • Axes  :  Ax는 Figure 안에 그려지는 그래프 하나하나를 의미
  • x Axis  :  x축
  • y Axis  :  y축
  • Legend  :  범례
  • Grid  :  그래프 바탕의 격자
  • Major tick  :  큰 눈금
  • Minor tick  :  작은 눈금
  • Line  :  선 그래프
  • Markers  :  산점도(scatter plot)의 점의 모양을 변경할 때 사용하는 옵션
  • Title  :  Figure 또는 Axes의 제목

 

* 전체 Figure의 제목을 지정하는 plt.title(), 개별 Ax의 제목을 지정하는 ax.set_title()

→  Figure 안에 여러 개의 그래프가 존재할 경우 set_title() 사용

 

 

 

seaborn

 

seaborn 라이브러리를 학습하고 나면 matplotlib 라이브러리는 잘 사용되지 않는다.

다양한 차트와 스타일의 seaborn으로 통계 데이터를 좀 더 예쁘게 시각화 할 수 있기 때문이다.

 

하지만, seaborn은 matplotlib을 기반으로 한 시각화 라이브러리이다.

matplotlib을 잘 이해하고 있어야 seaborn도 효과적으로 사용할 수 있다.

보기 좋게 시각화 하는 것이 아니라, 데이터 분석 시 동향 파악을 목적으로

데이터를 바로바로 시각화하여 확인해볼 때 matplotlib을 주로 사용하기도 한다.

 

아래 링크에서 seaborn 라이브러리에서 제공하는 차트의 종류를 찾아볼 수 있다.

 

http://seaborn.pydata.org/api.html

 

API reference — seaborn 0.11.2 documentation

Independently manipulate the h, l, or s channels of a color.

seaborn.pydata.org

 

 

 

여기서 categorical plots는 범주형 데이터를 가지고 그릴 수 있는 그래프의 목록이다.

 

데이터를 시각화하기 이전에 가지고 있는 데이터의 타입, 형태를 구분할 줄 알아야 한다.

Pandas로 행과 열을 가진 데이터를 가공할 때 열마다 데이터 타입이 존재하는 것을 확인했다.

 

데이터는 크게 숫자형 데이터와 문자형 데이터로 나뉘는데,

문자형 데이터 중에서 범주를 가지는 데이터를 범주형 데이터라고 한다.

예를 들면 일요일부터 월요일까지의 범주를 가진 요일 변수는 범주형 데이터이다.

숫자형 데이터는 보통 연속적인 값을 말하고, 소수점이 있냐 없냐 정도의 차이를 보인다.

 

범주형 데이터는 다시 두 가지 종류로 나누어진다.

순서를 나타내는 범주를 가지는 순서형 변수와 이름만 있는 범주를 가지는 명목형 변수이다.

1부터 5까지의 값으로 응답하는 설문조사 문항의 경우 각 숫자에 의미와 순서가 존재한다.

이처럼 변수들 사이에 순서가 존재하는 범주형 데이터를 순서형 변수라고 한다.

반면, 이름 자체로만 의미를 가지는 요일 변수는 명목형 변수에 해당한다.

 

 

 

아래 링크에서 matplotlib, seaborn을 활용한 실습 코드를 확인할 수 있다.

 

1)

https://github.com/tldnjs1231/data-analytics/blob/main/data-analytics-06-data_visualization_(1).ipynb 

 

GitHub - tldnjs1231/data-analytics

Contribute to tldnjs1231/data-analytics development by creating an account on GitHub.

github.com

 

2)

https://github.com/tldnjs1231/data-analytics/blob/main/data-analytics-06-data_visualization_(2).ipynb 

 

GitHub - tldnjs1231/data-analytics

Contribute to tldnjs1231/data-analytics development by creating an account on GitHub.

github.com