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

Matplotlib에서 산점도(scatter) 크기를 데이터 좌표로 변환하는 방법

Matplotlib에서 산점도의 마커 크기를 데이터 좌표 기준으로 변환하여 시각화하려면 몇 가지 단계를 거쳐야 합니다. 이 글에서는 numpy로 생성한 데이터 포인트와 크기 값을 활용해, 각 점의 크기가 서로 다른 산점도 그래프를 그리는 방법을 소개합니다.

구현 단계

  • 그림(figure) 크기를 설정하고, 서브플롯 주변 및 사이의 여백(padding)을 조정합니다.
  • numpy를 사용하여 x 좌표 배열과 크기 값 배열 s를 생성합니다.
  • figure 객체와 서브플롯 집합을 생성합니다.
  • Xs를 사용하고, 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 파라미터에 동일한 크기 배열을 넣고 컬러맵을 지정하면, 크기와 색상을 함께 활용한 직관적인 데이터 시각화가 가능합니다.