Matplotlib의 3D 산점도(scatter plot)에서 마커의 투명도 효과를 제거하려면 depthshade 매개변수를 활용하면 됩니다. 기본적으로 Matplotlib는 입체적인 깊이감을 표현하기 위해 카메라에서 멀리 있는 점들을 흐리게 처리하는데, depthshade=False로 설정하면 이러한 깊이 음영 효과가 비활성화되어 모든 데이터 포인트가 동일한 선명도로 표시됩니다.
구현 단계
- 그림(figure) 크기를 설정하고 서브플롯 사이 및 주변의 여백을 조정합니다.
- 새 그림을 생성하거나 기존 그림을 활성화합니다.
- 서브플롯 배치의 일부로 3D 축(ax)을 그림에 추가합니다.
- numpy를 사용하여 무작위 데이터 포인트 x, y, z를 생성합니다.
- scatter() 메서드에
depthshade=False를 지정하여 3D 축 위에 데이터를 플롯합니다. - 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') N = 10 x = np.random.rand(N) y = np.random.rand(N) z = np.random.rand(N) ax.scatter(x, y, z, c=y, cmap='plasma', alpha=1, depthshade=False) plt.show()
코드 설명
위 예제에서 alpha=1은 마커 자체를 완전히 불투명하게 만들고, depthshade=False는 거리에 따른 자동 음영 처리를 꺼줍니다. 두 옵션을 함께 사용하면 3D 공간상의 위치와 관계없이 모든 점이 원래 색상 그대로 선명하게 렌더링됩니다. 색상은 c=y로 y값에 따라 지정되었으며, plasma 컬러맵이 적용되었습니다.
실행 결과

