2011-12-06 2 views
1
나는 3D 산포도 만들려면 아래 명령을 사용

:하기 matplotlib 3D 분산 형 플롯 색상

from mpl_toolkits.mplot3d import Axes3D 
import matplotlib.pyplot as plt 

sizeseq = 2 
colorseq = "k" 

fig = plt.figure(1, (5,5), dpi=300) 
ax = Axes3D(fig) 
ax.view_init(20, -45) 

x, y, z = [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10], [1,2,3,4,5,6,7,8,9,10] 
ax.scatter(x, y, z, c=colorseq, s=sizeseq, lw=0, alpha=.8) 

plt.show() 

하지만 점의 색깔을 보면 내가 1로 알파를 설정 한 경우에도 이렇게 빛 그들은 거의 마스크 뒤에있는 것처럼 보입니다. 또한 개별 폿의 3D 위치에 의존하는 것처럼 보입니다. 모든 도트를 정말 어둡고 불투명하게 보이게하는 방법이 있습니까?

+0

최소한의 실제 예제를 게시 할 수 있습니까? – mac

답변

3

와 (검은 색 테두리로 굵게 모든 점, 예를 들어) 분산 생성 한 후 설정 전경 및 백그라운드에서 점. mplot3d를 해킹하여 그 일을 막을 수도 있습니다.

또는이 동작을 나타내지 않는 plot3D를 사용할 수도 있습니다.

ax.plot3D(x, y, z, 'k.', alpha=.8) 
+0

예, 좋은 해결책 – joaquin

2

알파 = 0.8 도트는 이미 매우 투명하게 보입니다. 알파는 사용하지 마십시오.
또한 각각의 외형보다 어두운 색으로 가장자리 선을 그려서 점을 더 어둡게 볼 수 있습니다.
사용 산란 키워드 매개 변수 edgecolor/edgecolors 또는 이것은 당신이 점을 구별 할 수 있도록 멋진 3D 효과를 사용하여 분산 될 것으로 보인다 myscatterplot.set_edgecolors(color)

+1

나는 시험해 보았다. edgecolor를 추가하면 어두운 테두리가되지만 도트 (1,1,1)가 나타나고 근처의 도트는 (10,10,10) – Jingping

+1

네보다 투명하고 색이 매우 흐릿 해 보입니다. mpl3d는 투명도를 사용하여 3D 느낌을 부여하려고합니다. 어쩌면 효과는 제거 될 수 있습니다, 비록 내가 어떻게 모르겠지만 아직 – joaquin