Matplotlib에서 공동 이변량 분포를 시각화하려면 scatter() 메서드를 활용하면 됩니다. 산점도(scatter plot)는 두 변수 간의 관계와 분포를 한눈에 파악할 수 있게 해주는 가장 기본적이면서도 효과적인 방법입니다.
구현 단계
그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
NumPy를 사용하여 x, y 데이터 포인트를 생성합니다.
figure 객체와 서브플롯(subplots) 집합을 생성합니다.
scatter() 메서드를 사용하여 x와 y 데이터를 플롯합니다.
그림을 화면에 표시하려면 show() 메서드를 호출합니다.
예제 코드
import numpy as np from matplotlib import pyplot as plt plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True x = 2 * np.random.randn(5000) y = x + np.random.randn(5000) fig, ax = plt.subplots() _ = ax.scatter(x, y, alpha=0.08, cmap="copper", c=x) plt.show()
코드 설명
위 예제에서는 np.random.randn()을 사용해 5,000개의 정규분포 난수를 생성하고, y 값은 x 값에 약간의 노이즈를 더한 형태로 만들어 두 변수 간의 양의 상관관계를 갖는 이변량 분포를 구성했습니다.
alpha=0.08 옵션은 점들의 투명도를 크게 낮춰 수천 개의 데이터 포인트가 겹치는 영역을 밀도가 높은 색으로 자연스럽게 표현해 줍니다. 이는 밀도 플롯(density plot)과 유사한 시각 효과를 냅니다.
또한 c=x 옵션으로 x 값을 기준으로 점의 색상을 지정하고, cmap="copper" 컬러맵을 적용해 분포의 패턴을 더욱 직관적으로 확인할 수 있습니다.
실행 결과

실행 결과, 중심을 향해 밀도가 높아지고 양의 상관관계를 따르는 공동 이변량 분포가 산점도 형태로 나타나는 것을 확인할 수 있습니다.