Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Seaborn에서 FacetGrid를 활용해 데이터를 시각화하는 방법

범주형 데이터 시각화: 막대 그래프와 포인트 플롯

Seaborn의 barplot(막대 그래프) 함수는 범주형 변수와 연속형 변수 사이의 관계를 나타냅니다. 데이터는 직사각형 막대 형태로 표현되며, 막대의 길이가 해당 범주에 속한 데이터의 비율을 의미합니다.

포인트 플롯(point plot)은 막대 그래프와 유사하지만, 채워진 막대 대신 특정 축의 높이에 점(point)을 찍어 데이터 값의 추정치를 표현한다는 점이 다릅니다.

범주형 데이터는 범주형 산점도(categorical scatter plot)나 pointplot 같은 개별 플롯으로 시각화할 수 있으며, 이보다 상위 수준의 함수인 factorplot을 활용할 수도 있습니다. factorplot 함수는 'kind' 매개변수를 통해 FacetGrid 위에 범주형 플롯을 그려줍니다.

여기서는 'kind' 매개변수의 값을 'violin'으로 지정합니다. 참고로 FacetGrid는 별도로 지정하지 않으면 기본적으로 'pointplot' 함수를 사용합니다.

그렇다면 factorplot을 사용해 바이올린 그래프(violin plot)를 만드는 방법을 살펴보겠습니다.

FacetGrid란 무엇인가?

FacetGrid는 모든 변수를 행(row)과 열(column)로 나누어 정의하는 패널(panel)의 행렬입니다. 이러한 패널 구조 덕분에 하나의 플롯이 마치 여러 개의 플롯을 한 번에 보여주는 것처럼 나타납니다.

FacetGrid는 두 개의 이산형 변수(discrete variables)가 가질 수 있는 다양한 조합을 한눈에 비교·분석할 때 특히 유용합니다. 다음 예제를 통해 확인해 보겠습니다.

예제 코드

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt

my_df = sb.load_dataset('exercise')
sb.factorplot(x = "time", y = "pulse", hue = "kind", kind = 'violin', col = "diet", data = my_df)
plt.show()

실행 결과

파이썬 Seaborn에서 FacetGrid를 활용해 데이터를 시각화하는 방법

코드 설명

  • pandas, seaborn, matplotlib 등 필요한 패키지들을 임포트합니다.
  • 입력 데이터는 Seaborn 라이브러리에서 제공하는 'exercise' 데이터셋입니다.
  • 'load_dataset' 함수를 사용해 데이터를 불러온 뒤 데이터프레임(my_df)에 저장합니다.
  • 'factorplot' 함수를 사용해 데이터를 시각화하며, 데이터프레임을 data 매개변수로 전달합니다.
  • x축에는 'time', y축에는 'pulse' 값을 지정합니다.
  • 'hue' 매개변수로 'kind'를, 'col' 매개변수로 'diet'를 지정해 조건별로 패널을 나눕니다.
  • 'kind' 매개변수를 'violin'으로 지정하여 바이올린 플롯을 그립니다.
  • plt.show()를 호출해 완성된 그래프를 화면에 출력합니다.

참고 사항

최신 버전의 Seaborn(0.9.0 이상)에서는 factorplot 함수가 catplot으로 이름이 변경되었습니다. 따라서 최신 환경에서 작업할 경우 sb.catplot(...) 형태로 호출하는 것이 좋으며, 매개변수와 사용법은 factorplot과 동일합니다.