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

Matplotlib로 두 개의 히스토그램 나란히 그리기: 단계별 가이드

데이터 분석에서 두 개의 데이터 분포를 비교할 때 히스토그램을 나란히 배치하면 시각적인 비교가 훨씬 쉬워집니다. Python의 대표적인 시각화 라이브러리인 MatplotlibPandas를 활용하면 몇 줄의 코드만으로 두 개의 히스토그램을 한 화면에 나란히 그릴 수 있습니다.

구현 단계

두 개의 히스토그램을 나란히 그리려면 다음 단계를 따르세요.

  • 먼저 figure 크기를 설정하고, 서브플롯 사이 및 주변 여백(padding)을 자동으로 조정합니다.

  • 2차원이면서 크기가 변경 가능하고 이질적인(heterogeneous) 데이터를 담을 수 있는 데이터프레임 두 개, 즉 df1df2를 생성합니다.

  • plt.subplots()를 사용하여 figure와 서브플롯 집합을 만듭니다. 이때 1행 2열 구조로 만들면 두 그래프가 나란히 배치됩니다.

  • 각 데이터프레임(df1, df2)에 대해 히스토그램을 생성하고, 각각 다른 축(axes)에 할당합니다.

  • 마지막으로 show() 메서드를 호출하여 완성된 figure를 화면에 표시합니다.

예제 코드

from matplotlib import pyplot as plt
import pandas as pd

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

df1 = pd.DataFrame(dict(a=[1, 1, 1, 1, 3]))
df2 = pd.DataFrame(dict(b=[1, 1, 2, 1, 3]))

fig, axes = plt.subplots(1, 2)

df1.hist('a', ax=axes[0])
df2.hist('b', ax=axes[1])

plt.show()

코드 설명

  • plt.rcParams["figure.figsize"]: 전체 figure의 크기를 가로 7.50인치, 세로 3.50인치로 지정합니다. 두 그래프가 나란히 들어가도록 넓게 설정하는 것이 좋습니다.

  • plt.rcParams["figure.autolayout"]: True로 설정하면 레이블이나 제목이 잘리지 않도록 여백이 자동으로 조정됩니다.

  • plt.subplots(1, 2): 1행 2열의 서브플롯 배열을 생성하여 fig(전체 figure)와 axes(개별 축 객체 배열)를 반환합니다.

  • df1.hist('a', ax=axes[0]): df1의 'a' 열 데이터로 히스토그램을 그리고 첫 번째 축에 배치합니다. 마찬가지로 df2의 'b' 열은 두 번째 축에 그려집니다.

실행 결과

위 코드를 실행하면 왼쪽에는 df1의 'a' 열 히스토그램이, 오른쪽에는 df2의 'b' 열 히스토그램이 나란히 표시됩니다. 이 방식을 활용하면 서로 다른 데이터셋의 분포를 한눈에 비교할 수 있어 탐색적 데이터 분석(EDA) 과정에서 매우 유용합니다.

추가 팁

두 히스토그램의 막대 개수(bin)를 동일하게 맞추고 싶다면 df1.hist('a', ax=axes[0], bins=10)처럼 bins 파라미터를 지정하세요. 또한 각 그래프에 제목을 추가하려면 axes[0].set_title('df1 히스토그램')과 같이 설정할 수 있습니다.