어쩌다데싸

[Python] matplotlib 시각화 정리 본문

ETC

[Python] matplotlib 시각화 정리

엔팁 2021. 7. 13. 13:46

데이터 분석가로 입사한 후 가장 많이 했던 일 중 하나는시각화.

데이터 핸들링과 시각화는 구글링 하지 않고 할 수 있을 정도로 해야 한다는 생각에

시각화 기능을 정리 중. 차근차근 보다는 내가 주로 사용했던 옵션 위주로 정리하고 있다.

 

1. 한글 경로 설정

import matplotlib.pyplot as plt
import seaborn as sns

# 한글 폰트 경로설정
from matplotlib import font_manager, rc 
font_path = "C:/Windows/Fonts/malgun.ttf"
font_name = font_manager.FontProperties(fname=font_path).get_name()
rc('font', family=font_name)

그냥 matplotlib을 쓰다 보면 한글 깨짐 현상이 발생한다. 이 때 사용하고자 하는 한글 폰트를 직접 설정해주어야 한다.

윈도우 PC에서 폰트 파일 경로는 'C:\Windows\Fonts'이고 속성에 들어가면 각 폰트의 영어 이름을 찾을 수 있다. 

일단은 기본 폰트인 맑은고딕으로 설정했다.

 

2. Subplots 그리기

fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(12,10), constrained_layout=True, 
			sharex=True, sharey=True)

그래프들을 비교해야 하는 경우 한 화면에 여러 그래프를 출력하는 것이 필요하다. subplot을 그리는 방법 중 가장 자주 쓰는 방법은 위처럼 원하는 행과 열의 수를 지정해서 subplot을 그리는 것이다. 

 

1) nrows : 행의 수 / ncols : 열의 수 => 위 코드에서는 2X2 형태의 subplot을 그렸다. 

2) figsize : 그래프 사이즈를 의미한다. (subplot 각각의 사이즈가 아닌 그래프가 그려지는 공간 전체의 사이즈이다.)

3) constrained_layout : subplot 끼리 겹치지 않게 하는 자동으로 간격을 조정해주는 옵션이다.

4) sharex / sharey : X축 or Y축을 subplot끼리 동일하게 만들어준다. 보통 가장 큰 범위를 가지고 있는 데이터 중심으로 share 된다.

 

그 외에 다양한 옵션은 아래 링크에서 확인할 수 있다.

https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.subplot.html

 

matplotlib.pyplot.subplot — Matplotlib 3.4.2 documentation

Parameters: *argsint, (int, int, index), or SubplotSpec, default: (1, 1, 1)The position of the subplot described by one of Three integers (nrows, ncols, index). The subplot will take the index position on a grid with nrows rows and ncols columns. index sta

matplotlib.org

 

사용할 때마다 업데이트 중