핵심 개념
Seaborn의 countplot에서 표시되는 그룹 수를 제한하려면 group_count라는 변수를 정의한 뒤, 이를 countplot() 메서드의 인자로 활용하면 됩니다. 핵심은 value_counts().iloc[:group_count].index를 order 파라미터에 전달하여, 빈도가 높은 상위 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이 출력됩니다.
