[python] Seaborn을 사용한 다중 막대 그래프 레이블 추가

Seaborn은 파이썬의 데이터 시각화 라이브러리로, 강력한 기능을 제공하여 데이터를 효과적으로 시각화할 수 있습니다. 이번 포스트에서는 Seaborn을 사용하여 다중 막대 그래프에 레이블을 추가하는 방법을 알아보겠습니다.

데이터 준비

먼저, 다중 막대 그래프에 표시할 데이터를 준비해야 합니다. 예를 들어, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다.

import pandas as pd

data = {
    'Category': ['A', 'B', 'C', 'D'],
    'Value1': [10, 20, 30, 40],
    'Value2': [15, 25, 35, 45]
}

df = pd.DataFrame(data)

위의 코드에서 Category 열은 그래프의 각 막대의 카테고리를 나타내고, Value1Value2 열은 각각 첫 번째와 두 번째 막대의 값을 나타냅니다.

다중 막대 그래프 그리기

이제 데이터를 준비했으니, Seaborn을 사용하여 다중 막대 그래프를 그릴 수 있습니다. Seaborn의 barplot 함수를 사용하여 그래프를 그리고, hue 매개변수를 사용하여 막대를 구분할 수 있습니다.

import seaborn as sns

sns.barplot(data=df, x='Category', y='Value1', hue='Value2')

위의 코드를 실행하면, 각 카테고리별로 Value1 값과 Value2 값의 막대 그래프가 그려집니다.

레이블 추가하기

다중 막대 그래프에 레이블을 추가하려면, ax 객체를 사용하여 각 막대의 위치를 찾고 text 함수를 사용하여 텍스트를 그래프에 추가할 수 있습니다.

import matplotlib.pyplot as plt

ax = sns.barplot(data=df, x='Category', y='Value1', hue='Value2')

# 각 막대의 위치에 레이블 추가하기
for p in ax.patches:
    ax.annotate(f'{p.get_height():.1f}', (p.get_x() + p.get_width() / 2, p.get_height()), ha='center', va='bottom')

plt.show()

위의 코드를 실행하면, 각 막대의 맨 위에 해당하는 값을 그래프에 표시한 다음, 그래프를 출력할 수 있습니다. annotate 함수의 첫 번째 매개변수로는 표시할 텍스트를 지정하고, 두 번째 매개변수로는 텍스트를 표시할 위치를 지정합니다.

이로써 Seaborn을 사용하여 다중 막대 그래프에 레이블을 추가하는 방법을 알아보았습니다. Seaborn에는 다양한 시각화 기능이 있으므로, 데이터를 효과적으로 분석하고 표현할 수 있습니다.

참고 자료