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()으로 대체하는 것이 좋습니다.