5-3. 다양한 시각화 라이브러리

유승우·2022년 5월 11일
0

Missingno


  • 결측치를 체크하는 시각화 라이브러리
  • 빠르게 결측치의 분포를 확인하고 싶을 때 사용
  • 결측치를 matrix로 나타내어 흰 부분으로 표시
# pip install Missingno
import Missingno as msno

msno.matrix(titanic) # 결측치 표시
msno.matrix(titanic,sort="descending") # (descending,ascending) 정렬
msno.bar(titanic) # barplot으로 표시

Treemap


  • 계층적 데이터를 직사각형을 사용하여 포함 관계를 표현한 시각화 방법

  • 사각형을 분할하는 타일링 알고리즘에 따라 형태가 다양해지는 것이 핵심

  • Treemap 사용 방법

    • squarify
    • plotly treemap
      • plotly를 사용하면 사각형 내부에 사각형을 포함시켜 계층적으로 포함할 수 있으며 줌인 줌아웃 형식으로 나타낼 수 있다.
  • parameter

    • values : 값 지정
    • label : label 지정
    • color : 색 지정
    • pad : 사각형 간 간격 지정
    • text_kwargs : text 요소 전달
# pip install squarify
import squarify

fig, ax = plt.subplots()
values = [100, 200, 300, 400]
label = list('ABCD')
color = ['#4285F4', '#DB4437', '#F4B400', '#0F9D58']

squarify.plot(values, label=label, color=color, pad=0.2, # pad를 통해 간격 설정
               text_kwargs={'color':'white', 'weight':'bold'}, ax=ax) # text_kwargs를 통해 text설정

ax.axis('off') # 축 제거
plt.show()

Waffle Chart


  • 와플 형태로 discrete하게 값을 나타내는 차트

  • pie 차트와 기능이 유사하며 전체적으로 데이터의 비율을 보여주는데 유용하다.

  • 또한, matplotlib 기반이라 custom이 쉬우며, Icon을 사용한 Waffle Chart도 가능하다.

  • parameter

    • row, columns : 사각형의 형태 지정
    • value : 값 전달
    • legend : 딕서녀리로 전달하여 범례 지정
    • cmap_names : 컬러 맵을 전달해서 색을 변경
    • colors : 개별적으로 각 범주의 색을 전달
    • starting_location : 네 꼭지점을 기준으로 시작점 지정 가능(NW,SW,NE,SE)
    • vertical : default는 가로로 진행, 세로로 진행하고 싶으면 True 지정
    • block_arranging_style : default는 snake 방식으로 진행(좌우로 왔다 갔다 하는 형식)하며, 어떤 식으로 나열할지 지정(new-line,snake)
    • icons : 아이콘 명칭 지정 (Font Awsome 에서 아이콘 사용 가능)
    • icon_legend : 아이콘을 범례로 사용할 것인지
    • font_size : 아이콘 사이즈 지정
# pip install pywaffle
from pywaffle import Waffle

data = {'A':50, 'B':45, 'C':15}
fig = plt.figure(FigureClass=Waffle, rows=5, columns=10,
									values=data,
									legend = {'loc':'upper left','bbox_to_acnhor' : (1,1,1),
									cmap_name = 'tab10',
									# colors=["#232066", "#983D3D", "#DCB732"],
									# starting_location="SE"),
									# vertical = True),
									# block_arranging_style = 'new-line')
									# icons = 'child',
									# icon_legend=True,
									# font_size=12)
									)

plt.show()

Venn


  • 집합을 표현하는 차트로, EDA 보다는 출판 및 프레젠테이션에 사용한다.
  • 디테일 한 사용이 drow.io나 ppt에 비해 어렵기 때문에 추천하지는 않는다
  • 이진법을 사용하여 각각에 들어갈 값 지정 가능
# pip install matplotlib_venn
from matplotlib_venn import venn2

# 두 개의 subset
venn2(subsets = (3,2,1)

# 세 개의 subset
venn2(subsets = (1,2,3,4,5,6,7), set_labels = ('set1','set2','set3'))

# set으로도 전달 가능
set1 = set(['A', 'B', 'C', 'D'])
set2 = set(['B', 'C', 'D', 'E'])
set3 = set(['C', 'D',' E', 'F', 'G'])

venn3([set1, set2, set3], ('Set1', 'Set2', 'Set3'))
plt.show()

0개의 댓글