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

Matplotlib – 카운트 플롯(countplot) 막대 상단에 개수 값을 표시하는 방법

Seaborn의 countplot에서 각 막대 상단에 개수(count) 값을 표시하려면 annotate() 함수를 활용하면 됩니다. 아래에서 단계별로 자세히 알아보겠습니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • 한 개의 열(column)을 가진 Pandas 데이터프레임을 생성합니다.
  • 카운트 플롯(countplot)은 양적 변수가 아닌 범주형 변수를 대상으로 한 히스토그램이라고 생각할 수 있습니다.
  • 카운트 플롯이 반환한 axes 객체를 순회(iterate)하면서 각 막대 상단에 개수 값을 표시합니다.
  • 그림을 화면에 출력하려면 show() 메서드를 사용합니다.

예제 코드

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

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

df = pd.DataFrame(dict(col1=np.array([2, 4, 1, 1, 1, 4])))

ax = sns.countplot(x="col1", data=df)

for p in ax.patches:
    ax.annotate('{:.1f}'.format(p.get_height()), (p.get_x()+0.25, p.get_height()+0.01))

plt.show()

코드 설명

위 코드에서 핵심 부분은 ax.patches를 순회하는 반복문입니다. p.get_height()로 각 막대의 높이, 즉 해당 범주의 개수 값을 가져오고, p.get_x()로 막대의 x 위치를 구한 뒤 annotate() 함수를 통해 그 위치 바로 위에 값을 텍스트로 표시합니다.

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Matplotlib – 카운트 플롯(countplot) 막대 상단에 개수 값을 표시하는 방법