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()
실행 결과

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