[데이터 시각화 도구 2] - seaborn

박미진·2022년 7월 17일
0

스터디 노트

목록 보기
4/4

1. seaborn

01. Seaborn 소개

(1) seaborn이란?

  • Python의 대표적인 시각화 도구로는 matplotlib과 seaborn이 있음
  • seaborn : statistical data visualization(통계 데이터 시각화)
  • 데이터 시각화 라이브러리 중 하나로 matplotlib을 기반으로 만들어져 통계 데이터 시각화에 최적화된 인기 라이브러리
  • matplotlib 위에 구축되고 pandas 데이터구조와 밀접하게 통합

※ 실제 분석에서는 matplotlib과 seaborn을 함께 사용

(2) seaborn 특징

  1. seaborn은 matplotlib 대비 손쉽게 그래프를 그리고, 그래프 스타일 설정을 할 수 있음 (matplotlib 기반 → matplotlib으로 커스텀(편집) 가능)
    => matplotlib에도 다양한 시각화 툴이 있지만, seaborn은 더 다양하고 다채로운 시각화 요소들이 존재함
  2. 매력적이고 유익한 통계 그래픽을 그리기 위한 고급 인터페이스를 제공 (통계와 그래프 그리기를 동시에 가능)
    ☞ seaborn에서만 제공되는 통계 기반 plot
    ☞ 특별하게 꾸미지 않아도 깔끔하게 구현되는 기본 color(다양한 색상)
    ☞ 더 아름답게 그래프 구현이 가능한 palette 기능(예쁜 디자인)
  3. pandas 데이터프레임과 높은 호환성
    → hue option으로 bar 구분이 가능하며, xtick, ytick, xlabel, ylabel, legend 등이 추가적인 코딩 작업 없이 자동으로 세팅됨
  4. seaborn에는 실습용 데이터가 몇 개 내장되어 있음
  5. Seaborn은 데이터 탐색 및 이해를 도움

※ 통계 정보 : 구성, 분포, 관계 등

02. Seaborn 설치 및 실행

(1) seaborn 설치

1) pip 명령을 이용한 설치

  • pip install seaborn

2) conda 명령을 이용한 설치

  • !conda install -y seaborn

(2) seaborn 실행

  • seaborn을 실행할 때는 보통 아래의 4개 패키지를 함께 사용해줌
    ☞ import pandas as pd
    ☞ import numpy as np
    ☞ import matplotlib.pyplot as plt
    ☞ import seaborn as sns(관례상 약어인 sns로 가져옴)

※ seaborn 혼자만 사용하는 경우는 거의 없다고 봐도 됨

  • 한글이 깨지는 경우를 방지하기 위한 한글 설정(한글 데이터도 다루기 때문)
from matplotlib import rc
plt.rcParams["axes.unicode_minus"]=False  # 마이너스 부호 때문에 혹시라도 한글이 깨지는 경우를 방지하기 위해 주는 옵션
rc("font", family="Malgun Gothic")  # 폰트는 '맑은고딕'

03. seaborn의 기능

(1) dataset

  • seaborn의 사용법을 익히기 위해서는 dataset이 필요한데, seaborn은 아주 친절하게도 기본으로 18종의 dataset을 제공
    → 제공해준다는 의미는 따로 dataset을 다운로드 받지 않아도 sns.load_dataset('dataset 이름')을 통해서 pandas DataFrame을 가져올 수 있다는 것
    예) tips = sns.load_dataset("tips")
    ☞ 문서에 있는 대부분의 코드는 이 load_dataset()함수를 사용하여 예제 dataset에 빠르게 access(접근)할 수 있음
    ☞ 이 dataset에는 특별한 것은 없으며, 이것들은 단지 pandas DataFrame일 뿐이고 우리는 이것들을 직접 load하거나 구축할 수 있었음
    ☞ 문서에 있는 대부분의 예제는 pandas DataFrame을 사용하여 데이터를 지정하지만, seaborn은 허용하는 데이터 구조에 대해 매우 유연함

✓ 예제 dataset 중 몇 개를 살펴보면?
① 붓꽃 dataset(iris)

  • iris(붓꽃) dataset은 통계학자인 Fisher가 소개한 데이터로 붓꽃의 3가지 종(setosa, versicolor, virginica)에 대한 꽃받침(sepal)과 꽃잎(petal)의 길이를 정리한 데이터
  • 해당 dataset은 머신러닝의 분류에 적합한 dataset으로 꼭 seaborn이 아니더라도 알아두면 좋을 듯

② 팁 dataset(tips)

(2) Apply the default theme(기본 테마 적용)

  • sns.set_theme()
    ☞ matplotlib rcParam 시스템을 사용하며, seaborn으로 만들지 않더라도 모든 matplotlib plot이 어떻게 보이는지에 영향을 미침
    ☞ 기본 테마 외에도 몇 가지 다른 옵션이 있으며, plot의 스타일과 배율을 독립적으로 제어하여 presentation contexts 간에 작업을 신속하게 번역할 수 있음
    예) 연설 중에 투영될 때 읽을 수 있는 글꼴이 있는 그림 버전 만들기
    ☞ matplotlib 기본값이 마음에 들거나 다른 테마를 선호하는 경우 이 단계를 건너뛰고 seaborn plotting 기능을 계속 사용할 수 있음

※ seaborn 기본값으로 전환하려면 set_theme()함수를 호출하기만 하면 됨
(0.8 이전 버전의 seaborn에서는 set_theme()가져올 때 호출되었음 이후 버전에서는 명시적으로 호출해야 함)

(3) Create a visualization (시각화 만들기)

sns.relplot(
    data=tips,
    x="total_bill", y="tip", col="time",
    hue="smoker", style="smoker", size="size",
)


→ 이 plot은 seaborn 함수에 대한 단일 호출을 사용하여 팁 dataset의 5개 변수 간의 관계를 보여줌

(4) 시각화 전반의 API 추상화

  • Seaborn을 사용하면 일관된 dataset 지향 API를 사용하여 다양한 시각적 표현 사이를 쉽게 전환할 수 있음
  • relplot() : 다양한 통계적 관계를 시각화하도록 설계되었기 때문에 이렇게 명명되었음
  • 산점도가 효과적인 경우가 많지만 한 변수가 시간 측정을 나타내는 관계는 선으로 더 잘 표현됨
dots = sns.load_dataset("dots")
sns.relplot(
    data=dots, kind="line",
    x="time", y="firing_rate", col="align",
    hue="choice", size="coherence", style="choice",
    facet_kws=dict(sharex=False),
)

(5) 통계적 추정 및 오차 막대

  • 많은 seaborn 함수는 통계적 추정을 자동으로 수행함
  • 통계 값이 추정될 때 seaborn은 bootstrapping을 사용하여 신뢰 구간을 계산하고 추정의 불확실성을 나타내는 오차 막대를 그림
  • seaborn의 통계적 추정은 기술적인 통계를 능가함
  • 선형 회귀 모델(및 해당 불확실성)을 포함하여 산점도를 향상할 수 있습니다
    예) lmplot()

(6) 유익한 분포 요약

  • seaborn의 displot()는 분포를 시각화하는 여러 접근 방식을 지원함
    → histogram과 같은 고전적인 기술과 Kernel Density Estimation(KDE : 커널 밀도 추정)과 같은 계산 집약적인 접근 방식이 포함됨

(7) 범주형 데이터에 대한 특수 플롯

  • seaborn의 여러 특수 plot 유형은 범주형 데이터 시각화를 지향함

(8) 다변수 datasets에 대한 복합 보기

  • 일부 seaborn 함수는 여러 종류의 plot을 결합하여 dataset의 유익한 요약을 신속하게 제공함
    예) jointplot(), pairplot()

(9) 복잡한 그래픽을 만들기 위한 클래스와 함수

g = sns.PairGrid(penguins, hue="species", corner=True)
g.map_lower(sns.kdeplot, hue=None, levels=5, color=".2")
g.map_lower(sns.scatterplot, marker="+")
g.map_diag(sns.histplot, element="step", linewidth=0, kde=True)
g.add_legend(frameon=True)
g.legend.set_bbox_to_anchor((.61, .6))

→ 데이터 집합의 구조를 좌표축 grid에 연결하여 Figure의 레이아웃을 관리하는 객체와 축 수준 plotting 기능을 결합하여 작동함
→ 몇 줄만 더 추가하면 복잡한 그림을 만드는데 직접 사용할 수 있음

(10) 기본 설정 및 유연한 사용자 정의

  • Seaborn은 단일 함수 호출로 완전한 그래픽을 생성함
  • 가능한 경우 해당 함수는 plot의 의미 mappings을 설명하는 유익한 축 레이블과 범례를 자동으로 추가함
  • seaborn은 데이터의 특성에 따라 매개변수의 기본값도 선택함
  • seaborn은 여러 수준의 사용자 정의를 허용함

※ matplotlib와의 관계

  • matplotlib에는 포괄적이고 강력한 API가 있음(그림의 거의 모든 속성을 원하는 대로 변경할 수 있음), seaborn의 고급 인터페이스와 matplotlib의 깊은 사용자 정의 기능을 결합하면 데이터를 빠르게 탐색하고 출판 품질의 최종 제품에 맞출 수 있는 그래픽을 만들 수 있음

04. seaborn 라이브러리에서 제공해주는 그래프(plot)의 종류

  • 그래프들을 분류해보면 관계형그래프, 분포형그래프, 카테고리형 그래프 3가지로 크게 나누어 볼 수 있음

    ① Relational plots (관계형) : 두가지 변수(x, y)의 관계를 나타내기 위한 그래프
    ☞ relplot
    ☞ scatterplot(산점도)
    ☞ lineplot
    ② Distribution plots (분포도) : 데이터 포인트의 분포를 전문적으로 나타내는 함수를 정의함, 변수 하나(x or y) 혹은 변수 두개 (x,y)의 값 분포를 나타내기 위한 그래프
    ☞ displot
    ☞ histplot : 히스토그램을 그리는 것
    ☞ kdeplot : 커널 밀도 추정(Kernel density estimation)
    ☞ ecdfplot
    ☞ rugplot
    ③ Categorical plots (범주형) : 범주형 변수 (ex. Male/Female, Yes/No)와 연속형 변수(숫자) 간의 관계를 나타내기 위한 그래프
    ☞ catplot
    ☞ stripplot
    ☞ swarmplot

    ☞ boxplot : 분포를 살피는 대표적인 시각화 방법
    ☞ violinplot : boxplot은 대표값을 보여주지만 실제 분포를 표현하기는 부족 → Violinplot은 이런 분포 정보를 제공해주는 데 적합함

    ☞ boxenplot
    ☞ pointplot
    ☞ barplot

    ☞ countplot : Seaborn 중 Categoricla APi에서 대표적인 시각화 방법, 범주를 이산적으로 세서 막대 그래프로 그려주는 함수

  • Regression plots (회귀) : 회귀(regression) 분석 결과를 relational p lots과 함께 나타내주는 그래프
    ☞ lmplot : 적절한 상관계수를 확인할 때 사용하기 좋음

    ☞ regplot
    ☞ residplot

  • Matrix Plot : 연속형 변수(숫자) 간의 관계 비율을 2차원 메트릭스로 만들고 그 비율에 따라 색을 입혀서 시각화
    ☞ heatmap : 여러가지 변수 비교, 값 별 수치를 색상으로
    => heatmap을 활용하면 수치별 시각화를 정말 쉽게 확인할 수 있음

    ☞ clustermap

  • Multi-plot grids : 여러 그래프를 함께 그려 한눈에 비교하기 위한 그래프
    ☞ pairplot : 단일 관계에 중점을 두지 않고 변수의 모든 쌍별 조합을 동시에 시각화합니다.

    ☞ Facetgrid
    ☞ Pairgrid
    ☞ Jointgrid
    ☞ jointplot : 두 개의 변수 간의 이변량(또는 joint) 관계와 별도의 축에 각각의 일변량(또는 marginal) 분포가 모두 표시되는 다중 패널 플롯 생성

05. seaborn plot aesthetics(플롯 미학)

  • 시각화는 청중에게 정량적 통찰력을 전달하는 데 핵심적이며, 그 설정에서는 주의를 끌고 시청자를 끌어들이는 수치를 갖는 것이 훨씬 더 필요함
  • Seaborn은 다양한 맞춤형 테마와 matplotlib 수치의 모양을 제어하기 위한 고급 인터페이스와 함께 제공됨

(1) Seaborn figure styles

  • set_style(밑바탕 옵션) : darkgrid, whitegird, dark, white, ticks의 5가지 사전 설정 테마가 있음
  • 기본 테마는 darkgrid
    ☞ 어두운 배경에 격자무늬가 함께 표시
    ☞ grid는 plot이 정량적 정보에 대한 조회 테이블 역할을 하는 데 도움이 되며, 흰색 바탕의 회색은 grid가 데이터를 나타내는 선과 경쟁하지 않도록 하는 데 도움이 됨
  • whitegrid : 주제는 비슷하지만 데이터 요소가 많은 플롯에 더 적합
    ☞ 많은 플롯의 경우(특히 데이터의 패턴에 대한 인상을 제공하기 위해 주로 그림을 사용하려는 대화와 같은 설정의 경우) gird가 덜 필요
  • 때로는 plot에 약간의 추가 구조를 제공하고 싶을 수도 있는데 이 경우 ticks이 유용
    ※ despine() : 축/테두리 제거

(2) Choosing color palettes(색상 팔레트 선택)

  • Seaborn을 사용하면 데이터의 특성과 시각화 목표에 잘 맞는 색상을 쉽게 사용할 수 있음

  • plot에서 색상을 사용하기 위한 일반 원칙
    ✓ 색상의 구성요소
    - 우리의 눈이 작동하는 방식 때문에 세 가지 구성 요소를 사용하여 특정 색상을 정의할 수 있음(일반적으로 디스플레이의 빨강, 녹색 및 파랑 채널의 강도를 설정하는 RGB 값을 지정하여 컴퓨터에서 색상을 프로그래밍함)
    - 색상의 지각적 속성을 분석하려면 색조, 채도 및 휘도 채널의 관점에서 생각하는 것이 좋음
    - 색조 : 비기술적인 의미에서 "다른 색상"을 구별하는 구성 요소
    ☞ "빨간색" 및 "파란색"과 같은 1차 이름으로 이어지는 것은 색상의 속성임

    - 채도 : 색상
    ☞ 채도가 높을수록 색조가 다른 두 가지 색상이 더 뚜렷하게 보임

    - 밝기 : 검정색에서 흰색에 이르는 빛이 방출되는(또는 인쇄된 색상의 경우 반사되는) 빛의 양에 해당

  • 범주를 구분하기 위해 색조를 다르게
    ☞ plot에서 여러 범주를 나타내려면 일반적으로 요소의 색상을 변경해야 함(색조는 범주를 나타내는 데 유용)
    ☞ 일반적으로 색조 변형을 사용하여 범주를 나타냄
    ※ 몇 가지 주의 사항 :
    ☞ 플롯에 몇 가지 이상의 색상이 있는 경우 범주와 해당 색상을 나타내는 데 사용되는 색상 사이에 기존 연관이 없는 한 각 색상이 의미하는 바를 기억하기 어려울 수 있음
    ☞ 데이터에 초점을 맞추기보다는 표시되는 내용을 이해하기 위해 범례를 계속 참조해야 함(너무 복잡한 plot을 만들지 않도록 노력해야 함)
    ☞ 모든 사람이 같은 방식으로 색상을 보는 것은 아님

  • 숫자를 나타내기 위해 다양한 휘도
    ☞ 색조 변화는 숫자 데이터를 표현하는 데 적합하지 않음
    ☞ 색조 기반 팔레트를 사용하면 이변량 분포의 모양을 확인하기가 매우 어려운데, 휘도 팔레트는 두 개의 두드러진 피크가 있음을 훨씬 더 명확하게 함
    ☞ 휘도(일정 면적을 통과하여 일정 입체각으로 들어오는 빛의 양)를 변화시키면 데이터의 구조를 볼 수 있고 휘도의 변화는 중요도의 변화로 보다 직관적으로 처리됨

✓ 데이터를 잘 표현하고 매력적으로 보이는 색상 팔레트를 어떻게 선택할 수 있을까?

  • 색상 팔레트 선택 도구
    ☞ 색상 팔레트 작업에 가장 중요한 기능은 적절하게는 color_palette()
    ☞ seaborn에서 색상 팔레트를 생성할 수 있는 대부분의 가능한 방법에 대한 인터페이스를 제공함
    ☞ 기본 인수 : color_palette()는 일반적으로 문자열임
    ☞ 인수 없이 color_palette() 호출하면 색상이 달리 지정되지 않은 경우 matplotlib(및 대부분의 seaborn 함수)에서 사용할 현재 기본 색상 팔레트가 반환됨

✓ 일반적으로 팔레트는 세 가지 범주 중 하나로 분류

  • 범주형 데이터를 나타내는 데 적합한 정성적 팔레트
  • 숫자 데이터를 나타내는 데 좋은 순차 팔레트
  • 범주형 경계가 있는 숫자 데이터를 나타내는 데 적합한 발산 팔레트

<질적 색상 팔레트>

  • 정성적 팔레트는 대부분의 변형이 색조 구성요소에 있기 때문에 범주형 데이터를 나타내는 데 적합
  • seaborn의 기본 색상 팔레트는 10가지 고유한 색조가 있는 정성적 팔레트
  • 이 색상은 기본 matplotlib 색상 팔레트와 동일한 순서를 "tab10" 갖지만 강도는 약간 덜함
sns.color_palette()

sns.color_palette("tab10")

  • Seaborn에는 실제로 matplotlib 팔레트의 6가지 변형이 있음
    ☞ deep, muted, pastel, bright, dark, colorblind
    ☞ 이는 평균 휘도 및 채도 값 범위에 걸쳐 있음
  • 원형 색상 시스템 사용
    ☞ 임의의 수의 범주가 있는 경우 고유한 색상을 찾는 가장 쉬운 방법은 원형 색상 공간(밝기와 채도를 일정하게 유지하면서 색상이 변경되는 색상 공간)에 균일한 간격의 색상을 그리는 것
    ☞ 대부분의 seaborn 함수가 기본 색상 주기에 현재 설정되어 있는 것보다 더 많은 색상을 사용해야 할 때 기본적으로 사용하는 것
  • seaborn이 현재 기본값에서 사용할 수 있는 것보다 더 많은 색상이 있는 범주형 팔레트가 필요한 경우 이 접근 방식을 사용

<범주형 Color Brewer 팔레트>

  • 시각적으로 만족스러운 범주형 팔레트의 또 다른 소스는 Color Brewer 도구(아래에서 볼 수 있듯이 순차적이고 발산하는 팔레트도 있음)에서 가져옴
sns.color_palette("Set2")


☞ 정성적 Color Brewer 팔레트의 길이는 다르며 기본 동작은 color_palette() 전체 목록을 제공하는 것
<순차 색상 팔레트>

  • 2번째 주요 색상 팔레트 클래스를 "순차"라고 함 이러
    ☞ 한 종류의 매핑은 데이터 범위가 상대적으로 낮거나 흥미롭지 않은 값에서 상대적으로 높거나 흥미로운 값(또는 그 반대로) 범위일 때 적합 위에서 ☞ 순차 팔레트에서 변형의 기본 차원은 휘도
    ☞ 일부 seaborn 함수는 숫자 데이터를 매핑할 때 기본적으로 순차 팔레트를 사용합

<지각적으로 균일한 팔레트>

  • 숫자 값을 나타내기 위한 것이기 때문에 최상의 순차 팔레트는 지각적으로 균일
  • 두 색상의 상대적 판별 가능성은 해당 데이터 값 간의 차이에 비례
  • Seaborn에는 4개의 지각적으로 균일한 순차적 컬러맵이 포함되어 있음
    ☞ "rocket", "mako", "flare", "crest"
    ☞ 처음 2가지는 매우 넓은 휘도 범위를 가지며, 색상이 플롯되는 공간을 채우는 히트맵과 같은 애플리케이션에 매우 적합
sns.color_palette("rocket", as_cmap=True)

sns.color_palette("mako", as_cmap=True)


☞ 이러한 컬러맵의 극단값은 흰색에 가깝기 때문에 선이나 점과 같은 요소를 색칠하는 데 적합하지 않음(흰색 또는 회색 배경에서 중요한 값을 구별하기 어려울 것)
☞ "flare" 및 "crest" 컬러맵은 이러한 플롯에 더 나은 선택
=> 휘도 변화의 범위가 더 제한되어 있어 색조의 약간 더 뚜렷한 변화로 보상(휘도 ramp의 기본 방향도 반대로 되어 값이 작을수록 색상이 더 밝아짐)

sns.color_palette("flare", as_cmap=True)

sns.color_palette("crest", as_cmap=True)


☞ "magma" 및 "viridis"와 같이 matplotlib에서 제공하는 지각적으로 균일한 컬러맵을 사용할 수도 있음

sns.color_palette("magma", as_cmap=True)

sns.color_palette("viridis", as_cmap=True)

☞ matplotlib의 규칙과 마찬가지로 모든 연속 컬러맵에는 접미사가 있는 반전 버전이 있음 "_r"

sns.color_palette("rocket_r", as_cmap=True)

<순차적인 "cubehelix" 팔레트>
☞ Cubehelix 시스템은 RGB 기반 절충안을 제공
☞ 밝기의 선형 증가 또는 감소와 색조의 일부 지속적인 변화가 있는 순차적 팔레트를 생성
☞ Matplotlib에는 기본 cubehelix 버전이 내장되어 있음
☞ seaborn cubehelix_palette() 함수가 반환하는 기본 팔레트는 색조 휠을 중심으로 회전하지 않거나 넓은 범위의 강도를 포함한다는 점에서 matplotlib 기본 팔레트와 약간 다름(더 많이 회전할수록 더 많은 색조 변화를 볼 수 있음)
☞ 끝점의 어둡고 밝은 정도와 순서를 제어할 수 있음

<사용자 정의 순차 팔레트>

  • 사용자 지정 순차 팔레트에 대한 더 간단한 인터페이스를 위해 light_palette()또는 dark_palette()를 사용할 수 있음
    ☞ 둘 다 단일 색상으로 시드되고 밝거나 어두운 채도가 낮은 값에서 해당 색상으로 ramp하는 팔레트를 생성

<발산 팔레트>

  • 크고 낮은 값과 높은 값이 모두 흥미롭고 강조되어야 하는 중간 값(종종 0)에 걸쳐 있는 데이터에 사용됨
  • 좋은 발산 팔레트를 선택하기 위한 규칙은 좋은 순차 팔레트와 유사
    ☞ 단, 이제 컬러맵에는 각 극에(또는 근처에) 하나씩 두 가지 주요 색조가 있어야 함
    ☞ 시작 값의 밝기와 채도가 비슷한 것도 중요
  • 지각적으로 균일한 잠수 팔레트
    ☞ "vlag", "icefire"
    => 둘 다 극에서 파란색과 빨간색을 사용하며, 많은 사람들이 직관적으로 "차가움"과 "뜨거움"으로 처리
  • 사용자 정의 발산 팔레트
    ☞ diverging_palette()를 사용하여 데이터를 발산하기 위한 사용자 지정 컬러맵을 생성할 수도 있음
  • 다른 발산 팔레트
    ☞ Color Brewer 팔레트를 포함하여 matplotlib에 내장된 몇 가지 다른 좋은 발산 팔레트가 있음
    => Spectral : coolwarm 중간 값과 극단 값 사이의 대비가 덜한 팔레트

✍ 시각화에서 색상을 사용하기 위한 많은 옵션이 있음
✍ Seaborn은 좋은 기본값을 사용하고 많은 유연성을 제공하려고 함

06. seaborn API 참조

(1) 관계형 플롯

  • relplot :
    FacetGrid에 관계형 플롯을 그리기 위한 그림 수준 인터페이스
  • scatterplot :
    여러 의미 그룹화 가능성이 있는 산점도를 그림
  • lineplot :
    여러 의미론적 그룹화 가능성이 있는 선 플롯을 그림

(2) 분포도

  • displot :
    FacetGrid에 분포도를 그리기 위한 그림 수준 인터페이스
  • histplot :
    데이터 세트의 분포를 표시하기 위해 일변량 또는 이변량 히스토그램을 플로팅함
  • kdeplot :
    커널 밀도 추정을 사용하여 일변량 또는 이변량 분포를 플로팅함
  • ecdfplot :
    경험적 누적 분포 함수를 플로팅함
  • rugplot :
    x 및 y 축을 따라 눈금을 그려 주변 분포를 플로팅함

(3) 범주형 도표

  • catplot :
    FacetGrid에 범주형 plot을 그리기 위한 그림 수준 인터페이스
  • stripplot :
    하나의 변수가 범주형인 산점도를 그림
  • swarmplot :
    겹치지 않는 점이 있는 범주형 산점도를 그림
  • boxplot :
    범주에 대한 분포를 표시하는 상자 그림을 그림
  • violinplot :
    상자 그림과 커널 밀도 추정값의 조합을 그림
  • boxenplot :
    더 큰 데이터 세트에 대한 향상된 상자 그림을 그림
  • pointplot :
    산점도 글리프를 사용하여 점 추정치 및 신뢰 구간을 표시함
  • barplot :
    점 추정치와 신뢰 구간을 직사각형 막대로 표시함
  • countplot :
    막대를 사용하여 각 범주형 bin의 관측값 개수를 표시함

(4) 회귀 플롯

  • lmplot :
    플롯 데이터 및 회귀 모델은 FacetGrid에 적합
  • regplot :
    플롯 데이터 및 선형 회귀 모델 적합
  • residplot :
    선형 회귀의 잔차를 플로팅함

(5) 행렬 플롯

  • heatmap :
    직사각형 데이터를 색으로 인코딩된 행렬로 플로팅함
  • clustermap :
    행렬 데이터 세트를 계층적으로 클러스터된 히트맵으로 플로팅함

(6) 다중 플롯 그리드

<패싯 그리드>

  • FacetGrid :
    조건부 관계를 플로팅하기 위한 다중 플롯 그리드

<페어 그리드>

  • pairplot :
    dataset에서 쌍별 관계를 플로팅함
  • PairGrid :
    dataset에서 쌍별 관계를 플로팅하기 위한 서브 plot 그리드

<조인트 그리드>

  • jointplot :
    이변량 및 일변량 그래프를 사용하여 두 변수의 플롯을 그림
  • JointGrid :
    주변 일변량 플롯이 있는 이변량 플롯을 그리기 위한 그리드

(7) 테마

  • set_theme :
    모든 matplotlib 및 seaborn 플롯에 대한 시각적 테마의 측면을 설정
  • axes_style :
    플롯의 일반적인 스타일을 제어하는 매개변수를 가져옴
  • set_style :
    플롯의 일반적인 스타일을 제어하는 매개변수를 설정
  • plotting_context :
    플롯 요소의 스케일링을 제어하는 매개변수를 가져옴
  • set_context :
    플롯 요소의 배율을 제어하는 매개변수를 설정
  • set_color_codes :
    matplotlib 색상 약어가 해석되는 방식을 변경
  • reset_defaults :
    모든 RC 매개변수를 기본 설정으로 복원
  • reset_orig :
    모든 RC 매개변수를 원래 설정으로 복원(사용자 정의 rc 존중)
  • set :
    set_theme()기본 인터페이스에 대한 별칭

(8) 색상 팔레트

  • set_palette :
    Seaborn 팔레트를 사용하여 matplotlib 색상 주기를 설정
  • color_palette :
    색상 목록을 반환하거나 팔레트를 정의하는 연속적인 컬러맵을 반환
  • husl_palette :
    HUSL 색조 공간에서 균일한 간격의 색상 세트를 가져옴
  • hls_palette :
    HLS 색조 공간에서 균일한 간격의 색상 세트를 가져옴
  • cubehelix_palette :
    Cubehelix 시스템에서 순차 팔레트를 만듬
  • dark_palette :
    어두운 색에서 까지 혼합되는 순차 팔레트를 만듬
  • light_palette :
    빛에서 까지 혼합되는 순차 팔레트를 만듬
  • diverging_palette :
    두 HUSL 색상 사이에 발산 팔레트를 만듬
  • blend_palette :
    색상 목록을 혼합하는 팔레트를 만듬
  • xkcd_palette :
    xkcd 색상 조사에서 색상 이름으로 팔레트를 만듬
  • crayon_palette :
    Crayola 크레용에서 색상 이름으로 팔레트를 만듬
  • mpl_palette :
    matplotlib 팔레트에서 개별 색상을 반환

(9) 팔레트 위젯

  • choose_colorbrewer_palette :
    ColorBrewer 세트에서 팔레트를 선택
  • choose_cubehelix_palette :
    대화형 위젯을 실행하여 순차적인 큐브나선형 팔레트를 생성
  • choose_light_palette :
    대화형 위젯을 실행하여 가벼운 순차 팔레트를 생성
  • choose_dark_palette :
    대화형 위젯을 실행하여 어두운 순차 팔레트를 생성
  • choose_diverging_palette :
    다양한 색상 팔레트를 선택하려면 대화형 위젯을 실행

(10) 유틸리티 기능

  • despine :
    plot에서 상단 및 오른쪽 축을 제거
  • move_legend :
    새 위치에서 플롯의 범례를 다시 만듬
  • saturate :
    동일한 색조로 완전히 포화된 색상을 반환
  • desaturate :
    색상의 채도 채널을 몇 퍼센트 감소
  • set_hls_values :
    색상의 h, l 또는 s 채널을 독립적으로 조작
  • load_dataset :
    온라인 repository에서 예제 dataset을 load(인터넷 필요)
  • get_dataset_name :
    문제 보고에 유용한 사용 가능한 예시 dataset를 보고
  • get_data_home :
    예제 dataset의 캐시 디렉토리 경로를 반환

※ 더 자세한 코드나 설명, 그림은 seaborn 공식 홈페이지 참고!!

<reference(참조)>
03. 데이터시각화(seaborn)
[Python/Seaborn] 데이터 시각화 라이브러리
파이썬 seaborn 데이터 시각화 차트/그래프 총정리
seaborn

0개의 댓글