파이썬의 Matplotlib 라이브러리를 활용하면 3D 산점도(scatter plot)에서 알파 값, 즉 점의 투명도를 자유롭게 조절할 수 있습니다. 핵심은 산점도 객체의 facecolors(면 색상)와 edgecolors(테두리 색상)를 직접 설정하는 것입니다.
3D 산점도 알파 값 설정 단계
- 그림 크기를 지정하고 서브플롯 사이와 주변의 여백(padding)을 조정합니다.
- figure() 메서드를 사용해 새 그림을 생성하거나 기존 그림을 활성화합니다.
- add_subplot() 메서드로 그림에 '~.axes.Axes'를 추가하고, projection 옵션을 '3d'로 지정해 3D 축을 만듭니다.
- NumPy를 이용해 x, y, z 데이터 포인트를 생성합니다.
- scatter() 메서드로 x, y, z 좌표의 점들을 플롯합니다.
- facecolors와 edgecolors를 설정해 점의 면 색상과 테두리 색상을 지정합니다.
- show() 메서드를 호출해 최종 그림을 화면에 출력합니다.
예제 코드
import numpy as np import matplotlib.pyplot as plt # 그림 크기 및 자동 레이아웃 설정 plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True # 새 figure 생성 후 3D 축 추가 fig = plt.figure() ax = fig.add_subplot(projection='3d') # NumPy로 x, y, z 데이터 생성 x = np.random.sample(20) y = np.random.sample(20) z = np.random.sample(20) # 산점도 플롯 및 facecolors / edgecolors 설정 s = ax.scatter(x, y, z, c="r") s._set_facecolors, s._set_edgecolors = s.set_facecolors, s.set_edgecolors plt.show()
실행 결과

위 코드를 실행하면 빨간색 점으로 표현된 3차원 산점도가 출력됩니다. 내부적으로 _set_facecolors와 _set_edgecolors 속성에 setter 메서드를 연결함으로써, 점의 면과 테두리 색상을 유연하게 제어할 수 있게 됩니다.
참고: alpha 매개변수로 더 간단하게 투명도 조절하기
실무에서는 scatter() 메서드의 alpha 매개변수를 직접 사용하는 방법이 더 간편합니다. alpha 값은 0(완전히 투명)부터 1(완전히 불투명) 사이의 실수로 지정할 수 있습니다.
s = ax.scatter(x, y, z, c="r", alpha=0.5)
이처럼 alpha=0.5를 적용하면 점들이 반투명하게 렌더링되어, 데이터 포인트가 많을 때 겹치는 영역을 시각적으로 파악하기 쉬워집니다. 두 방법을 상황에 맞게 활용하면 3D 시각화의 가독성을 크게 향상시킬 수 있습니다.