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

Matplotlib 컬러바를 활용해 3D 산점도 그리는 방법

Matplotlib에서 3D 그래프 위에 산점도(scatter plot)를 그리고 색상 값을 나타내는 컬러바(colorbar)까지 함께 표시하려면 scatter() 메서드와 colorbar() 메서드를 함께 사용하면 됩니다. 데이터의 세 번째 차원을 색상으로 표현할 수 있어 시각화의 가독성이 크게 향상됩니다.

구현 단계

  • 그림(figure) 크기를 설정하고 서브플롯 주변 및 사이의 여백을 조정합니다.

  • figure() 메서드로 새 figure를 생성하거나 기존 figure를 활성화합니다.

  • 축(axis)을 서브플롯으로 추가하면서 projection 옵션을 "3d"로 지정하여 3D 축을 만듭니다.

  • NumPy를 이용해 xs, ys, zs 데이터 포인트를 생성합니다.

  • scatter() 메서드로 산점도를 그립니다. 이때 c 파라미터에는 색상 기준이 될 데이터를, cmap 파라미터에는 적용할 컬러맵을 지정합니다.

  • colorbar() 메서드에 scatter()가 반환한 mappable 객체를 전달하여 컬러바를 표시합니다.

  • show() 메서드로 완성된 그림을 화면에 출력합니다.

예제 코드

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig = plt.figure()
ax = fig.add_subplot(projection="3d")
xs = np.random.rand(100)
ys = np.random.rand(100)
zs = np.random.rand(100)
sc = ax.scatter(xs, ys, zs, c=xs, cmap="copper")
plt.colorbar(sc)
plt.show()

실행 결과

Matplotlib 컬러바를 활용해 3D 산점도 그리는 방법

위 코드를 실행하면 x값에 따라 copper 컬러맵으로 색상이 매핑된 3D 산점도와 함께 오른쪽에 컬러바가 표시됩니다. 컬러바를 통해 각 점의 색상이 어떤 값 범위에 해당하는지 직관적으로 확인할 수 있습니다.