Matplotlib에서 산점도의 마커 크기를 데이터 좌표 기준으로 변환하여 시각화하려면 몇 가지 단계를 거쳐야 합니다. 이 글에서는 numpy로 생성한 데이터 포인트와 크기 값을 활용해, 각 점의 크기가 서로 다른 산점도 그래프를 그리는 방법을 소개합니다.
구현 단계
- 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
- numpy를 사용하여 x 좌표 배열과 크기 값 배열 s를 생성합니다.
- figure 객체와 서브플롯 집합을 생성합니다.
- X와 s를 사용하고, cmap과 색상 정보를 지정하여 산점도(scatter plot)를 그립니다.
- 그래프를 화면에 표시하기 위해 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 = np.array([[1, 1], [2, 1], [2.5, 1]]) s = np.array([20, 10000, 10000]) fig, ax = plt.subplots() ax.scatter(X[:, 0], X[:, 1], s=s, cmap='plasma', c=s) plt.show()
실행 결과
위 코드를 실행하면 세 개의 데이터 포인트가 표시된 산점도가 출력됩니다. 첫 번째 점은 크기 값이 20으로 작게 나타나고, 나머지 두 점은 크기 값이 10000으로 매우 크게 표시됩니다. 또한 cmap='plasma' 옵션과 색상 값으로 c=s를 지정했기 때문에, 각 점의 색상 역시 크기 값에 따라 plasma 컬러맵을 따라 다르게 표현됩니다.
핵심 포인트
Matplotlib의 scatter() 함수에서 s 파라미터는 마커의 면적을 의미하며, 배열을 전달하면 각 데이터 포인트마다 서로 다른 크기를 적용할 수 있습니다. 여기에 c 파라미터에 동일한 크기 배열을 넣고 컬러맵을 지정하면, 크기와 색상을 함께 활용한 직관적인 데이터 시각화가 가능합니다.