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

Seaborn 그래프 2개를 나란히 배치하는 방법 (Matplotlib 활용)

Seaborn에서 두 개의 그래프를 좌우로 나란히 배치하려면 Matplotlib의 subplots() 함수를 활용하면 됩니다. 하나의 Figure 안에 여러 축(Axes)을 만들고, 각 축에 원하는 Seaborn 그래프를 지정하는 방식입니다. 아래 단계를 따라 하면 손쉽게 구현할 수 있습니다.

구현 단계

  • nrows=1, ncols=2 옵션과 함께 plt.subplots()를 호출하여 한 행에 두 개의 열로 구성된 그림(Figure)을 생성합니다.

  • Pandas를 사용해 col1, col2 키를 가진 데이터프레임(DataFrame)을 만듭니다.

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

  • 서브플롯 사이와 주변의 여백(Padding)을 자동으로 조정합니다.

  • show() 메서드를 호출하여 최종 그래프를 화면에 표시합니다.

예제 코드

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

# 1행 2열의 서브플롯 생성
f, axes = plt.subplots(1, 2)

# 데이터프레임 생성
df = pd.DataFrame(dict(col1=np.linspace(1, 10, 5), col2=np.linspace(1, 10, 5)))

# 왼쪽 축에는 빨간색, 오른쪽 축에는 초록색 카운트플롯 그리기
sns.countplot(df.col1, x='col1', color="red", ax=axes[0])
sns.countplot(df.col2, x="col2", color="green", ax=axes[1])

plt.show()

실행 결과

위 코드를 실행하면 하나의 Figure 안에 빨간색과 초록색 두 개의 카운트플롯이 나란히 표시됩니다. ax 파라미터에 각각 다른 축 객체(axes[0], axes[1])를 전달하는 것이 핵심 포인트입니다.

참고 사항

countplot()이나 scatterplot()처럼 ax 파라미터를 지원하는 대부분의 Seaborn 함수는 이 방식으로 자유롭게 배치할 수 있습니다. 반면 lmplot()이나 catplot()은 내부적으로 자체 Figure를 생성하기 때문에 기존 축에 직접 넣을 수 없으며, 이 경우 relplot() 또는 regplot()으로 대체하는 것이 좋습니다.