검색
검색
공개 노트 검색
회원가입로그인

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리)

page thumbnail

seaborn 라이브러리를 활용하여 다양한 시각화 기법을 구현하는 예시입니다. 히스토그램, 상자 그림, 바이올린 그림, 산점도, 선형 회귀선이 포함된 산점도, 상관계수 히트맵 등을 그리는 방법을 보여줍니다. 각 코드 블록에는 주요 기능과 파라미터에 대한 설명을 코멘트로 달아두었습니다.

1. Seaborn 라이브러리 설치

# seaborn 라이브러리 설치
!pip install seaborn

# seaborn 라이브러리 추가
import seaborn as sns

# 데이터 로드
tipsData = sns.load_dataset('tips')

# 데이터 확인
tipsData

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 1

2. 히스토그램 그리기


# 히스토그램 그리기
h1 = sns.histplot(data=tipsData, x='tip', bins=10)
h1.set_xlabel("Tip($)")
# histplot 함수를 사용하여 'tip' 변수의 히스토그램을 그립니다.
# bins 파라미터로 히스토그램의 구간 수를 설정합니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 2


# 새로운 변수 'tip_percent' 생성
tipsData['tip_percent'] = (tipsData['tip']/tipsData['total_bill'])*100
h2 = sns.histplot(data=tipsData, x='tip_percent', kde=True, bins=20)
h2.set_xlabel("Tip/Total Bill(%)")
# 'tip_percent' 변수를 생성하여 전체 금액 대비 팁의 비율을 계산합니다.
# kde 파라미터를 True로 설정하여 커널 밀도 추정 곡선을 그립니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 3

3. 상자 그림 그리기 (boxplot)

# 상자 그림 그리기
b1 = sns.boxplot(x='sex', y='tip', data=tipsData)
b1.set_xlabel("Sex")
b1.set_ylabel("Tip($)")
# boxplot 함수를 사용하여 성별에 따른 팁의 분포를 상자 그림으로 나타냅니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 4

4. 바이올린 그림 그리기 (violinplot)

# 바이올린 그림 그리기
v1 = sns.violinplot(x='sex', y='tip', data=tipsData)
v1.set_xlabel("Sex")
v1.set_ylabel("Tip($)")
# violinplot 함수를 사용하여 성별에 따른 팁의 분포를 바이올린 그림으로 나타냅니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 5

5. 산점도 그리기(scatter plot)

*relplot 사용

# 산점도 그리기
s1 = sns.relplot(data=tipsData, x='total_bill', y='tip')
s1.set_xlabels('Total Bill($)')
s1.set_ylabels('Tip($)')
# relplot 함수를 사용하여 전체 금액과 팁 사이의 관계를 산점도로 나타냅니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 6

6. 선형 추세선 포함된 산점도

  • lmplot 함수 활용

# 선형 회귀선이 포함된 산점도 그리기
lm2 = sns.lmplot(data=tipsData, x='total_bill', y='tip', hue='smoker')
lm2.set_xlabels('Total Bill($)')
lm2.set_ylabels('Tip($)')
# lmplot 함수를 사용하여 전체 금액과 팁 사이의 관계를 선형 회귀선과 함께 나타냅니다.
# hue 파라미터를 사용하여 흡연 여부에 따라 다른 색상으로 구분합니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 7

7. 상관계수 히트맵 그리기 (heatmap)

  • corr()함수

# 상관계수 히트맵 그리기
corr = tipsData.corr()
sns.heatmap(data=corr, cmap="YlGnBu", annot=True)
# 데이터프레임의 corr 메서드를 사용하여 변수 간 상관계수를 계산합니다.
# heatmap 함수를 사용하여 상관계수를 히트맵으로 시각화합니다.
# cmap 파라미터로 색상 맵을 설정하고, annot 파라미터를 True로 설정하여 상관계수 값을 그래프에 표시합니다.

[데이터 시각화] 분포 및 관계에 대한 시각화 (seaborn 라이브러리) image 8

seaborn 라이브러리는 데이터 시각화를 위한 유용한 도구입니다. Matplotlib을 기반으로 구축되어 있어 Matplotlib의 기능을 모두 활용할 수 있으면서도, 더욱 아름답고 정보전달력이 높은 그래프를 쉽게 생성할 수 있습니다.

seaborn의 주요 장점

  1. 통계 그래픽에 최적화: seaborn은 통계 분석에 특화된 다양한 그래프 유형을 제공

  2. 아름다운 기본 스타일

  3. 색상 팔레트 지원

  4. 복잡한 다변량 데이터 처리

  5. 사용 편의성

seaborn 라이브러리를 활용하면 데이터 분석 및 시각화 작업의 생산성과 품질을 크게 향상시킬 수 있습니다. 통계 분석에 특화된 기능, 아름다운 그래프, 사용 편의성 등의 장점을 통해 데이터의 패턴과 인사이트를 효과적으로 발견하고 전달할 수 있습니다. 데이터 분석과 시각화에 관심 있는 분들께 seaborn 라이브러리를 적극 활용해 보시기를 추천드립니다.

조회수 : 261
공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기