Seaborn을 사용한 Python의 데이터 시각화

파이썬
데이터 시각화
seaborn
Seaborn을 사용한 Python의 데이터 시각화 cover image

오늘날 세계에서 가장 귀중한 자원은 더 이상 석유가 아니라 데이터입니다. 시각화는 수십억 행의 데이터를 이해하는 데 점점 더 중요한 도구가 되고 있습니다. 데이터 시각화는 데이터를 해석하기 쉬운 그래픽 표현으로 변환함으로써 관련 정보, 패턴 및 이상치를 강조함으로써 데이터 스토리텔링을 돕습니다. 그러나 데이터와 그래픽은 함께 작동해야 합니다. 이는 훌륭한 분석과 훌륭한 스토리텔링을 통합하는 기술입니다. 이번 블로그 게시물에서는 Python으로 작성된 가장 잘 알려진 시각화 도구 중 하나인 "Sea Born"을 보여 드리겠습니다.

시각화 도구

우리는 시각화 도구를 사용하여 추세, 패턴, 특이치 및 변수 간의 관계를 시각화합니다. 특히 데이터 과학 경력에 있어 수요가 매우 높은 기술입니다.

씨본

Seaborn은 matplotlib를 기반으로 하는 Python 데이터 시각화 라이브러리입니다. 매력적이고 유익한 통계 그래픽을 그리기 위한 고급 인터페이스를 제공합니다.

Seaborn 플로팅 기능:

seaborn에는 3가지 카테고리의 플롯이 있습니다.

  • 범주형 도표.

  • 분포도.

  • 관계형 플롯.


범주형 도표

우리는 범주형 변수의 경향을 시각화하거나 적어도 하나의 범주형 변수가 있는 두 변수 간의 관계를 시각화하기 위해 seaborn의 범주형 플로팅 기능을 사용합니다.

카운트 플롯:

  • 범주형 변수에서 각 범주의 관측치 개수를 표시합니다. 우리는 단순히 변수의 각 범주에 대한 관측치 수를 계산합니다.
seaborn.catplot(kind = 'count',
                data = dataset,
                x    = 'variable')

Count plot

막대 그래프:

  • 범주형 변수의 각 범주에 대한 직사각형의 높이로 연속형 변수의 경향 추정치를 나타냅니다. 따라서 플로팅 함수는 두 개의 변수를 입력으로 사용합니다. 하나는 연속형이고 다른 하나는 범주형입니다. Variable_1의 각 범주에 대해 Variable_2의 경향을 계산합니다.

  • 경향은 평균, 분산일 수도 있고 일부 맞춤 함수를 전달할 수도 있습니다.

seaborn.catplot(kind = 'bar',**data = dataset,**
                x    = 'variable_1',**y    = 'variable_2',**
                estimator = np.mean)**

Bar Plot

스트립 플롯:

  • 스트립 플롯은 데이터 시각화에서 가장 간단하고 간단한 플롯 중 하나입니다. 연속형 변수의 값을 나타내는 점을 간단히 그립니다. 변수 1의 각 범주에 대해 변수 2의 값을 그립니다.

Strip Plot

seaborn.catplot(kind = 'strip',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                jitter = 0.15)

스웜 플롯:

  • 스웜 플롯은 기능이 완전히 동일하므로 스트립 플롯과 매우 유사합니다. 유일한 차이점은 포인트를 표시하는 방법입니다. 스트립 플롯에서는 데이터 포인트가 x축에 무작위로 배치되므로 데이터 포인트가 겹칠 수 있지만, 스웜 플롯에서는 포인트를 서로 쌓아서 포인트가 겹치지 않도록 합니다.

  • 여기서 단점은 데이터 포인트가 많으면 겹치지 않게 하는 것이 불가능하므로 알고리즘이 겹치지 않도록 일부 데이터 포인트를 삭제한다는 것입니다.

Swarm Plot

seaborn.catplot(kind = 'swarm',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

박스 플롯:

  • 박스 플롯은 범주형 변수의 각 범주에 대한 연속형 변수의 분포를 나타내는 데 사용됩니다. 매우 간단하지만 많은 정보를 얻을 수 있습니다.

  • 사분위수 값:

상자 내부에는 중앙값을 나타내는 수평선이 있습니다. 위의 수평선은 상위 사분위수이고, 아래의 수평선은 하위 사분위수입니다.

  • 이상값:

상자 외부에 몇 가지 점이 있습니다. 이 점은 이상값을 나타냅니다.

Box Plot

seaborn.catplot(kind = 'box',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

바이올린 플롯:

분포 상자를 그리는 대신 바이올린 플롯은 KDE(Kernel Density Estimation)를 사용하여 범주형 변수의 각 범주에 대한 연속 변수의 실제 분포를 표시합니다.

Violin Plot

seaborn.catplot(kind = 'violin',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

분포도:

연속변수의 분포를 시각화하기 위해 seaborn의 분포도 기능을 사용합니다.

히스토리 플롯:

히스트 플롯은 빈을 사용한 연속형 변수의 분포를 나타냅니다.

Hist Plot

seaborn.distplot(kind = 'hist',
                 data = dataset,
                 x    = 'variable',
                 bins = 20)

KDE 플롯:

Kde 플롯은 커널 밀도 추정을 사용하여 데이터의 실제 분포를 나타냅니다.

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable')

또한 두 연속형 변수의 이변량 분포를 나타내는 데 사용할 수도 있습니다.

KDE Plot

seaborn.distplot(kind = 'kde',
                 data = dataset,
                 x    = 'variable_1',
                 y    = 'variable_2')

ECDF 플롯:

ECDF 플롯은 연속형 변수의 경험적 누적 분포를 나타냅니다.

ECDF Plot

seaborn.distplot(kind = 'ecdf',
                 data = dataset,
                 x    = 'variable')

관계형 플롯:

연속변수 간의 관계를 시각화하기 위해 seaborn의 관계형 플롯 기능을 사용합니다.

산포도:

  • 모든 데이터 포인트를 간단히 표시하여 두 개의 연속 변수 사이의 관계를 보여줍니다.

Scatter Plot

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

선 도표:

  • 변수 간의 관계를 연속함수로 나타냅니다.

Line Plot

seaborn.relplot(kind = 'line',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2')

추가 기능:

모든 플로팅 함수에서 플롯당 최대 2개의 변수를 사용했다는 것을 눈치채셨을 것입니다. 하지만 시각화에 더 많은 변수를 도입하려면 어떻게 해야 할까요? 다행히 Seaborn이 이를 처리했습니다.

색조:

  • 색상을 사용하여 색상 인코딩을 사용하는 시각화에 범주화되는 세 번째 변수를 도입할 수 있습니다. 이는 이 세 번째 변수의 동일한 범주에 속하는 데이터 포인트가 동일한 색상을 갖게 된다는 것을 의미합니다.

Hue

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3')

크기:

  • 크기는 색상과 유사하지만 색상 인코딩 대신 크기 인코딩을 사용합니다. 이는 세 번째 변수의 동일한 범주에 속하는 데이터 포인트가 동일한 고유 크기를 갖음을 의미합니다. 크기가 다르면 카테고리도 다릅니다.

Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                size = 'variable_3',
                sizes = [50, 100])

스타일:

  • Hue 및 Size와 거의 동일합니다. 이는 세 번째 변수의 동일한 범주에 속하는 데이터 포인트가 동일한 고유 스타일을 갖게 됨을 의미합니다. 포인트 스타일은 점, 별, 십자가, 삼각형 등이 될 수 있습니다. 우리는 이를 마커라고 부릅니다.

Style

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                style = 'variable_3',
                markers = ['X', '*'])

다중 도표를 사용하여 새로운 범주형 변수를 도입할 수도 있습니다. 각 도표는 범주 범주형 변수의 범주에 속합니다.

안부:

세 번째 변수의 범주에 대해 수평으로 많은 그림을 생성합니다.

Col

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                col  = 'variable_3')

열:

세 번째 변수의 범주에 대해 수직으로 많은 그림을 생성합니다.

Row

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                row  = 'variable_3')

동일한 플롯에서 Hue와 Size를 사용하여 4개의 변수를 나타낼 수도 있고 Hue와 Style 및 Col을 사용하여 동일한 플롯에서 5개의 변수를 사용할 수도 있습니다! 동일한 플롯에서 최대 7개의 변수(변수 1, 변수 2, Hue, Size, Style, Col, Row)를 사용할 수 있지만 이는 너무 지저분하고 해석하기 극도로 어렵고 때로는 그렇지 않은 매우 복잡한 플롯을 제공합니다. 전혀 유익하지 않습니다.

Hue & Size

seaborn.relplot(kind = 'scatter',
                data = dataset,
                x    = 'variable_1',
                y    = 'variable_2',
                hue  = 'variable_3',
                size = 'variable_4')

결론:

이번 포스팅에서는 Seaborn의 3가지 플롯팅 기능 카테고리인 카테고리형, 분포형, 관계형 플롯에 대해 알아보고 각 카테고리의 각 플롯팅 기능을 Python 코드와 함께 설명했습니다.

이 주제에 대해 자세히 알아보려면 데이터 과학 부트캠프를 확인하세요!


Career Services background pattern

취업 서비스

Contact Section background image

계속 연락하자

Code Labs Academy © 2024 판권 소유.