Seaborn 막대 그래프: 완전 가이드

데이터 시각화는 복잡한 정보를 명확하고 실행 가능한 통찰로 변환합니다. Seaborn 막대 그래프는 우아한 통계 그래픽을 통해 범주형 데이터를 효과적으로 제시합니다. 이 라이브러리는 Matplotlib의 유연성과 판다스의 강력함을 결합하여 신속한 분석 및 게시 준비가 된 시각화에 이상적입니다.

Seaborn 막대 그래프는 데이터 분석을 위한 필수 기능을 제공합니다 – 기본 비교부터 고급 통계적 표현까지. 지역별 매출 지표 비교, 설문 조사 응답 분석, 실험 결과 시각화와 같은 일반적인 작업을 처리합니다.

라이브러리의 직관적인 구문과 내장된 통계 함수는 초보자와 숙련된 데이터 실무자 모두에게 가치가 있습니다.

이 기사에서는 Seaborn 막대 그래프의 기본 사항, 코드 예제를 사용한 기본 플롯 작성, 사용자 정의를 통한 플롯 개선, 고급 기능 구현, 실용적인 응용 프로그램 탐색을 살펴볼 것입니다.

Seaborn에 대한 데이터 시각화 자세히 알아보기 위해 Seaborn을 사용한 데이터 시각화 소개 코스를 확인하세요.

Seaborn 막대그래프 기초

막대그래프에 대해 알아보기 전에, Seaborn의 기본 사항, 막대그래프에 대한 장점 및 코딩 환경 설정 방법을 살펴보겠습니다.

Seaborn이란 무엇인가요?

Seaborn은 Matplotlib을 기반으로 한 Python 통계 데이터 시각화 라이브러리입니다. 이는 최소한의 코드로 정보를 제공하고 매력적인 통계 그래픽을 생성하는 데 특화되어 있습니다. 라이브러리는 pandas DataFrames와 밀접하게 통합되어 있어 데이터 분석 워크플로에 특히 효과적입니다.

이는 다양한 스타일링 세부 사항을 자동으로 처리하면서 매력적인 플롯을 그릴 수 있는 고수준 인터페이스를 제공합니다.

이 라이브러리는 세 가지 핵심 측면에서 뛰어납니다:

  • pandas DataFrames와 완벽하게 통합되어 데이터 조작이 간단합니다.
  • 내장된 통계 기능을 제공하여 별도의 계산이 필요하지 않습니다
  • 기본적으로 전문적으로 보이는 테마와 색 팔레트를 적용합니다

예를 들어, Matplotlib은 기본 통계 시각화를 만들기 위해 여러 줄의 코드가 필요하지만, Seaborn은 동일한 작업을 단일 함수 호출로 수행할 수 있습니다.

특히 막대 그래프의 경우, Seaborn은 자동 평균 계산, 신뢰 구간 및 고급 범주형 변수 처리와 같은 강력한 기능을 추가합니다. 이는 일반 Matplotlib에서 상당한 추가 코드가 필요한 기능입니다.

왜 막대 그래프를 사용해야 하는가?

바 플롯은 수직 또는 수평 막대를 통해 범주형 데이터를 표현하며, 길이가 숫자 값으로 표시됩니다. 이는 서로 다른 그룹 또는 범주 간의 값 비교에 이상적입니다. 데이터 분석에서 바 플롯은 설문 결과, 시장 점유율, 성과 지표 및 판매 분포를 시각화하는 데 도움이 됩니다.

주요 장점은 다음과 같습니다:

  • 범주별 수량 비교의 명확성
  • 평균, 중앙값, 신뢰 구간과 같은 내장된 통계 기능
  • 그룹화된 데이터의 효과적인 표현
  • 단순하지만 정보를 잘 전달하는 시각적 요소
  • 전문 프레젠테이션을 위한 쉬운 사용자 정의 옵션

빠른 설정

Seaborn을 사용하여 막대 그래프를 만들기 시작하려면 Python 환경을 설정해야 합니다. 시작하는 방법은 다음과 같습니다:

먼저 아래와 같이 필요한 패키지를 설치하겠습니다:

pip install seaborn pandas numpy

이제 모든 시각화 도구를 사용할 준비가 되었습니다. 아래와 같이 필요한 라이브러리를 가져오겠습니다:

# 통계 시각화를 위해 import seaborn as sns # 데이터 조작 및 분석을 위해 import pandas as pd # 숫자 연산을 위해 import numpy as np

우리는 다음과 같은 스타일 설정으로 그래프를 더 잘 보이게 만들 수 있습니다:

# 깔끔한 화이트 스타일 sns.set_style("white")

화이트 스타일은 그리드 라인을 제거하여 대부분의 화면에서 그래프가 잘 보이게 만듭니다. 다음 섹션에서는 막대 그래프를 만들고 향상시키는 방법을 살펴보겠습니다.

기본 Seaborn 막대 그래프 만들기

막대 그래프는 범주형 변수와 수치형 변수 간의 관계를 시각화하는 데 이상적입니다. 평균 또는 중앙값과 그 주변의 불확실성을 오차 막대를 통해 보여줍니다. seaborn 막대 그래프의 기본 구문을 살펴보겠습니다.

Syntax and parameters

The sns.barplot() Seaborn 함수는 통계 막대 그래프를 만드는 간단한 방법을 제공합니다. .barplot() 함수의 기본 구조는 아래와 같습니다:

sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )

이러한 매개변수들은 우리가 표시하는 데이터와 그 표시 방식을 제어할 수 있게 합니다. data 매개변수는 데이터프레임을 가져오는데 사용되며, xy는 카테고리와 값으로 사용할 열을 지정합니다. estimator는 적용할 통계 함수를 선택할 수 있게 해주며 (기본값은 평균), errorbar는 불확실성을 표시하는 방법을 제어합니다. orient 매개변수를 사용하여 수직 및 수평 방향으로 전환할 수도 있습니다.

이제 Seaborn의 내장 팁 데이터셋을 사용하여 효과적인 막대 그래프를 만드는 방법을 살펴보겠습니다. 이 데이터셋에는 레스토랑 계산 및 팁에 관한 정보가 포함되어 있습니다.

예시: 간단한 데이터셋 시각화

팁 데이터셋을 사용하여 주별 팁 행동을 살펴보겠습니다. 이 데이터셋에는 요일, 총 계산액, 팁 금액 및 기타 변수에 관한 정보가 포함되어 있습니다.

# 필요한 라이브러리를 불러오고 데이터셋을 로드합니다 import seaborn as sns tips = sns.load_dataset("tips") # 각 요일별 평균 팁을 보여주는 기본 막대 그래프를 생성합니다 sns.barplot(data=tips, x="day", y="tip")

결과:

우리의 코드는 위의 시각화를 생성했습니다. 각 막대는 다른 요일의 평균 팁 금액을 나타냅니다. 각 막대의 높이는 평균 팁 값이고, 검은 선(오차 막대)은 95% 신뢰 구간을 나타내며, 전형적인 팁 금액과 얼마나 변동하는지에 대한 통찰을 제공합니다.

또한 다양한 식사 시간대별 팁 패턴을 살펴볼 수도 있습니다:

# 시간대별 평균 팁을 보여주는 막대 그래프를 생성합니다 sns.barplot(data=tips, x="time", y="tip")

결과:

이 그래프는 점심과 저녁 서비스 간 팁 행동의 차이를 보여줍니다. 각 막대의 높이는 해당 시간대의 평균 팁 금액을 나타내며, 오차 막대는 팁 행동의 변동성을 보여줍니다. 이러한 시각화는 패턴을 쉽게 발견하고 한눈에 그룹을 비교할 수 있게 합니다.

이러한 기본 막대 플롯은 더 복잡한 시각화를 위한 기초를 제공합니다. 다음 섹션에서는 이러한 플롯을 색상, 그룹화 및 기타 사용자 정의를 통해 더 많은 정보를 제공하고 시각적으로 매력적인 시각화로 개선하는 방법을 살펴볼 것입니다.

사용자 정의로 막대 플롯 향상하기

막대 플롯에 시각적 향상을 추가하면 데이터를 더 매력적이고 이해하기 쉽게 만들 수 있습니다. 팁 데이터 세트를 사용하여 막대 플롯을 사용자 정의하는 다양한 방법을 살펴보겠습니다.

막대 플롯에 색상 추가

Seaborn은 막대 플롯에 색상을 추가하는 여러 방법을 제공하여 시각적으로 매력적이고 정보를 제공합니다. 모든 막대에 동일한 색상을 사용하거나 색상으로 그룹을 구분할 수 있습니다.

color 매개변수는 모든 막대에 동일한 색상을 설정하고, palette는 데이터에 여러 그룹이 있는 경우 색상 체계를 지정할 수 있습니다. Seaborn에는 다양한 내장 색상 팔레트가 제공되며, 다양한 유형의 데이터에 적합합니다.

아래와 같이 color 매개변수를 사용하여 단일 색상의 간단한 막대그래프를 만들 수 있습니다:

# 이미 tips 데이터셋을 불러왔다면 생략 import seaborn as sns tips = sns.load_dataset("tips") # 단일 색상 막대그래프 sns.barplot(data=tips, x="day", y="tip", color="skyblue")

결과:

팔레트 매개변수를 사용하여 다양한 색상의 막대그래프를 만들 수 있습니다: import seaborn as sns tips = sns.load_dataset("tips") # 이미 tips 데이터셋을 불러왔다면 생략 sns.barplot(data=tips, x="day", y="tip", palette="Set2")

결과:

다중 열이 있는 Seaborn 막대그래프

Seaborn 막대그래프의 가장 강력한 기능 중 하나는 hue 매개변수를 사용하여 여러 변수 간의 관계를 표시할 수 있다는 점입니다. 이를 통해 그룹화된 막대를 생성하여 비교를 쉽게 할 수 있습니다. 매개변수를 사용하는 것입니다. 이는 비교를 쉽게 만드는 그룹화된 막대를 생성합니다.

다음과 같이 hue 매개변수를 사용하여 양일과 식사 시간 사이의 팁을 비교해 보겠습니다:

# 데이터 세트를 로드하십시오 import seaborn as sns tips = sns.load_dataset("tips") # 요일 및 시간별 팁을 보여주는 그룹화된 막대 그래프 생성 sns.barplot( data=tips, x="day", y="tip", hue="time" )

결과:

위의 그래프는 점심과 저녁을 나타내는 두 막대를 보여줍니다. 이 그룹화를 통해 우리는 팁이 어떻게 요일별로 다른지 뿐만 아니라 식사 시간별로 어떻게 다른지도 확인할 수 있습니다.

Seaborn 쌓인 막대그래프 생성

쌓인 막대그래프는 다른 범주의 구성을 보여주는 데 효과적입니다. Seaborn에는 직접 쌓인 막대그래프 기능이 없지만 matplotlib을 결합하여 효과적인 쌓인 시각화를 만들 수 있습니다.

이 접근 방식은 Seaborn의 통계 기능을 활용하면서 matplotlib의 쌓기 기능을 사용합니다. 예를 들어, 팁 데이터 세트에서 다른 요일별로 흡연자와 비흡연자 사이에 팁이 어떻게 분배되는지 살펴봅시다.

시각화를 위해 필요한 라이브러리를 가져오기로 시작합시다:

# 필요한 라이브러리 가져오기 import seaborn as sns import matplotlib.pyplot as plt import numpy as np

이제 레스토랑 팁 정보를 포함하는 데이터 세트를로드하겠습니다:

# 팁 데이터 세트 로드 tips = sns.load_dataset("tips")

우리 시각화를 위한 적절한 차원의 도표를 만들겠습니다:

# 도표 및 축 생성 plt.figure(figsize=(10, 4))

다음으로, 다른 요일별 흡연자와 비흡연자의 평균 팁을 계산하겠습니다:

# 쌓인 값 계산 # 흡연자 필터링, 요일별 그룹화 및 평균 팅 가져오기 smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # 비흡연자 필터링, 요일별 그룹화 및 평균 팅 가져오기 non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

다음으로, 아래에 표시된 대로 쌓인 막대 막대의 기본 매개변수를 설정하겠습니다:

# matplotlib을 사용하여 쌓인 막대 막대 그리기 days = smoker_means.index width = 0.8

이제 비흡연자를 위한 쌓인 막대의 하단 레이어를 만들겠습니다:

# 하단 막대 (비흡연자) 생성 plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

흡연자 팁을 위한 상단 레이어를 추가하겠습니다:

# 상단 막대 (흡연자) 생성 plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])

시본 스타일링을 사용하여 그리드 라인이 없는 깔끔한 스타일을 설정하겠습니다:

# Seaborn 스타일링 추가 sns.set_style("white")

마지막으로 완성된 쌓인 막대 그래프를 표시하겠습니다:

# 도표 표시 plt.show()

출력:

결과 도표는 각 요일별 흡연자의 평균 팁이 비흡연자의 팁 위에 쌓인 것을 보여주며, 두 그룹의 총 팁과 각 그룹의 기여도를 쉽게 비교할 수 있습니다.

이 방법을 사용하면 다음을 할 수 있습니다:

  • 시본의 매력적인 시각 스타일 유지
  • 구성을 보여주기 위해 막대 쌓기
  • 시각화의 통계적 성격 유지
  • 일관성을 위해 Seaborn의 색상 팔레트 사용

고급 기능 및 팁

이제 기본 사항과 사용자 정의를 다루었으니, 가로 막대 그래프를 더 다양하고 전문적으로 만들 수 있는 고급 기능을 살펴보겠습니다. 이러한 고급 기술을 시연하기 위해 계속해서 팁 데이터셋을 사용할 것입니다.

막대 그래프 주석

막대에 값 레이블을 추가하면 시각화가 더 정확하고 정보를 제공하기 쉬워집니다. 각 막대 위에 정확한 팁 값이 표시된 막대 그래프를 만들어 보겠습니다.

먼저 라이브러리를 가져와서 데이터를 준비해봅시다:

# 필요한 라이브러리 가져오기 import seaborn as sns import matplotlib.pyplot as plt # 팁 데이터셋 로드 및 준비 tips = sns.load_dataset("tips")

통계 값을 포함한 막대 그래프 생성:

# 기본 막대 그래프 생성 ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations

다음으로, 각 막대 위에 값 레이블을 추가해봅시다:

# 각 막대의 높이 가져오기 bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # 각 막대 위에 텍스트 주석 추가 for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )

출력:

축과 스케일 관리

막대 그래프를 만들 때, 축을 조정하면 데이터를 더 읽기 쉽고 효과적으로 만들 수 있습니다. Seaborn의 함수를 사용하여 축 제한, 레이블 및 눈금을 사용자 정의하는 방법을 살펴봅시다.

먼저 라이브러리를 가져오고 시각화에 필요한 데이터셋을 로드해봅시다:

# 필요한 라이브러리 가져오기 import seaborn as sns # 팁 데이터셋 로드 및 준비 tips = sns.load_dataset("tips")

우리는 요일의 순서와 사용자 정의 레이블을 가진 막대 그래프를 만들 수 있습니다. order 매개변수를 사용하여 x축에 원하는 요일을 정확하게 배치할 수 있습니다.

# 축 레이블이 있는 막대 그래프 생성 ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )

플롯을 더 유익하게 만들기 위해 set 메서드를 사용하여 양축에 설명적 레이블을 추가할 수 있습니다.

# 설명적 축 레이블 설정 ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )

시각화를 미세 조정하기 위해 특정 한계와 눈금을 설정할 수 있습니다. ylim 매개변수는 y축의 범위를 제어하고, xticksyticks를 사용하여 눈금이 나타날 정확한 위치를 정의할 수 있습니다.

# 축 한계 및 눈금 사용자 정의 ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

그래프에 이러한 모든 변경 사항을 통합하려면 한 번에 실행해야 하며 하나씩 실행하면 안 됩니다. 전체 코드는 아래와 같습니다:

# 필요한 라이브러리 가져오기 import seaborn as sns # 팁 데이터 세트 로드 및 준비 tips = sns.load_dataset("tips") # 축 레이블이 있는 막대 그래프 생성 ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # 설명적인 축 레이블 설정 ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # 축 제한과 눈금 사용자 정의 ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

출력:

결과 그래프는 일별 팁을 명확한 레이블, 적절한 척도 및 잘 정리된 눈금 표시로 보여 주어 데이터를 쉽게 읽고 해석할 수 있습니다.

오차 막대 통합

오차 막대는 데이터의 불확실성이나 가변성을 시각화하는 데 도움이 됩니다. Seaborn은 신뢰 구간 및 표준 편차를 포함한 여러 옵션을 제공하여 막대 그래프에 오차 막대를 추가할 수 있습니다.

먼저 라이브러리를 가져와 시각화에 필요한 데이터셋을 로드하겠습니다:

# 필요한 라이브러리 가져오기 import seaborn as sns # 팁 데이터셋 로드 및 준비 tips = sns.load_dataset("tips")

기본적으로 Seaborn은 95% 신뢰 구간을 보여줍니다. ‘errorbar’ 매개변수를 사용하여 다양한 유형의 통계 추정치를 표시할 수 있습니다:

# 신뢰 구간이 있는 막대 그래프 생성 ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )

결과:

데이터의 분포를 시각화하는 데 도움이 되는 표준 편차 대신 신뢰 구간을 표시할 수도 있습니다:

# 표준 편차로 전환 ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )

결과:

가끔은 깔끔한 모습을 위해 오차 막대를 완전히 제거하고 싶을 수 있습니다:

# 오차 막대 없이 막대 그래프 생성 ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )

결과:

얻어진 플롯은 서로 다른 요일별 팁 데이터의 변동성을 이해하는 데 어떻게 다른 오차 막대 유형이 도움이 되는지 보여줍니다.

Seaborn 막대 그래프의 실용적 응용

막대 그래프는 데이터 시각화에서 다재다능한 도구로, 특히 서로 다른 범주 간 값 비교가 필요하거나 여러 변수를 동시에 분석해야 할 때 유용합니다. Seaborn 막대 그래프가 뛰어난 두 가지 일반적인 응용을 살펴보겠습니다.

Seaborn 막대 그래프는 범주형 데이터에서 패턴을 효과적으로 보여주며, 특히 다른 그룹 간의 지표를 분석할 때 뛰어납니다. 중심 경향성과 불확실성을 모두 보여줌으로써, 막대 그래프는 범주 간의 중요한 차이를 식별하는 데 도움이 됩니다.

이는 고객 행동, 제품 성능 또는 설문 조사 응답과 같이 서로 다른 그룹 간의 값을 비교해야 하는 경우에 이상적입니다.

여러 변수 비교

분석에 여러 요인이 포함될 때 Seaborn의 막대 그래프는 데이터에서 복잡한 관계를 강조할 수 있습니다. 색조 (hue)나 쌓기와 같은 기능을 사용하여 서로 다른 변수를 동시에 비교하면 데이터의 다양한 측면 간의 패턴과 상호 작용을 쉽게 파악할 수 있습니다.

결론

Seaborn 막대 그래프는 간단함과 통계적 통찰력 사이의 적절한 균형을 유지합니다. 라이브러리의 직관적인 구문과 견고한 통계 기능이 결합되어 데이터 시각화를 위한 필수 도구로 만들어집니다. 기본 범주 비교부터 고급 그룹 시각화까지, 막대 그래프는 데이터 패턴을 효과적으로 발견하고 전달하는 데 도움이 됩니다.

데이터 시각화 기술을 향상시키기 ready하시다면? 다음을 탐험해보세요:

Seaborn 기술을 더욱 향상시키고 싶나요? Seaborn을 활용한 중급 데이터 시각화 과정에 등록하세요.

Source:
https://www.datacamp.com/tutorial/seaborn-barplot