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

Seaborn countplot에서 표시되는 그룹 수를 제한하는 방법


핵심 개념

Seaborn의 countplot에서 표시되는 그룹 수를 제한하려면 group_count라는 변수를 정의한 뒤, 이를 countplot() 메서드의 인자로 활용하면 됩니다. 핵심은 value_counts().iloc[:group_count].indexorder 파라미터에 전달하여, 빈도가 높은 상위 N개 그룹만 화면에 출력되도록 하는 것입니다.

구현 단계

  • Figure와 두 개의 서브플롯(subplots)을 생성합니다.

  • Pandas를 사용하여 두 개의 열(key)을 가진 데이터프레임을 만듭니다.

  • countplot() 메서드에서 그룹 수를 제한하기 위한 변수 group_count를 초기화합니다.

  • countplot() 메서드를 사용하여 각 범주형 구간(bin)별 관측치 개수를 막대그래프로 시각화합니다.

  • 서브플롯 사이와 주변의 여백(padding)을 조정합니다.

예제 코드

import pandas as pd
import numpy as np
import seaborn as sns
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

f, axes = plt.subplots(1, 2)

df = pd.DataFrame(dict(col1=np.linspace(1, 10, 5), col2=np.linspace(1, 10, 5), col3=np.linspace(1, 10, 5)))

group_count = 1

sns.countplot(df.col1, x='col1', color="red", ax=axes[0], order=df.col1.value_counts().iloc[:group_count].index)
sns.countplot(df.col2, x="col2", color="green", ax=axes[1], order=df.col2.value_counts().iloc[:group_count].index)

plt.tight_layout()
plt.show()

코드 설명

  • np.linspace(1, 10, 5)로 생성한 값들을 Pandas 데이터프레임의 세 열(col1, col2, col3)에 할당합니다.

  • group_count = 1로 설정하면 각 countplot에는 빈도 기준 상위 1개 그룹만 표시됩니다. 이 값을 늘리면 더 많은 그룹을 한 번에 볼 수 있습니다.

  • order=df.col1.value_counts().iloc[:group_count].index 부분이 실질적으로 그룹 수를 제한하는 역할을 합니다.

  • color 파라미터로 첫 번째 플롯은 빨간색, 두 번째 플롯은 초록색으로 지정했습니다.

실행 결과

위 코드를 실행하면 두 개의 서브플롯에 각각 group_count로 지정한 개수만큼의 그룹만 표시된 countplot이 출력됩니다.

Seaborn countplot에서 표시되는 그룹 수를 제한하는 방법