4D 플롯을 그리려면 x, y, z 좌표에 더해 색상(c) 정보를 담은 네 가지 데이터 포인트를 생성하면 됩니다. 이렇게 하면 3차원 공간 위에 네 번째 차원을 색상으로 표현하는 산점도를 만들 수 있습니다.
구현 단계
figure() 메서드를 사용해 새 Figure를 생성하거나 기존 Figure를 활성화합니다.
add_subplot() 메서드로 서브플롯 배치에 3D 축을 추가합니다.
NumPy를 사용하여 x, y, z, c 데이터 포인트를 생성합니다.
scatter() 메서드로 산점도를 그립니다. 이때 c 매개변수에 색상 데이터를 전달하고 cmap으로 컬러맵을 지정합니다.
show() 메서드로 Figure를 화면에 표시합니다.
예제 코드
from matplotlib import pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = np.random.standard_normal(100) y = np.random.standard_normal(100) z = np.random.standard_normal(100) c = np.random.standard_normal(100) img = ax.scatter(x, y, z, c=c, cmap='YlOrRd', alpha=1) plt.show()
코드 설명
plt.rcParams["figure.figsize"]: Figure 크기를 가로 7인치, 세로 3.5인치로 설정합니다.
fig.add_subplot(111, projection='3d'): 3차원 투영(projection)이 적용된 축을 생성합니다.
np.random.standard_normal(100): 표준 정규분포를 따르는 난수 100개를 각 축과 색상 값으로 생성합니다.
cmap='YlOrRd': 노란색에서 주황색, 빨간색으로 이어지는 컬러맵을 사용해 네 번째 차원(c) 값을 시각화합니다.
alpha=1: 점의 불투명도를 완전 불투명하게 설정합니다.
실행 결과
위 코드를 실행하면 3차원 공간에 흩어진 점들이 표시되며, 각 점의 색상은 네 번째 데이터 값(c)에 따라 YlOrRd 컬러맵으로 매핑됩니다. 이를 통해 x, y, z 위치 정보와 함께 추가 변수까지 한눈에 파악할 수 있는 4D 시각화가 완성됩니다.