2014-11-10 2 views
3

3 차원 분산 데이터를 세 개의 별개의 클러스터로 그룹화합니다. 하나는 빨간색, 하나는 녹색, 다른 하나는 파란색입니다.mplot3d 스태킹 컬러 분산 데이터의 우선 순위 표시

내가 겪고있는 문제는 클러스터가 카메라와 인라인으로 회전 할 때 뷰어가 일반적으로 예상하는 공간 순서대로 클러스터를 표시하지 않는다는 것입니다 (예 : 가장 가까운 클러스터가 가장 멀리있는 클러스터를 차단해야 함). 카메라에서). 대신 스택 우선 순위는 녹색보다 우선 순위가 높은 빨간색과 파란색보다 녹색 인 색상 (이 경우 R-> G-> B)으로 결정됩니다.

다음 링크에서 빨간색 클러스터가 녹색 위에 숨겨져 있어야합니다. http://imgur.com/TdjW9aI

따라서 스 캐터 데이터의 스태킹 순서 (정렬)를 제어하는 ​​것은 무엇이며 표시 우선 순위가 카메라에 근접한 순서로 표시되도록 변경하는 방법은 무엇입니까?

from pylab import * 
from numpy import * 
from mpl_toolkits.mplot3d import axes3d 

fig = figure() 
ax = fig.gca(projection='3d') 

# plot points in 3D 
class1 = 0.5 * random.standard_normal((200,3)) 
ax.plot(class1[:,0],class1[:,1],class1[:,2],'o') 
class2 = 0.7 * random.standard_normal((700,3)) + array([5,4,0]) 
ax.plot(class2[:,0],class2[:,1],class2[:,2],'o') 
class3 = 0.3 * random.standard_normal((200,3)) + array([2,3,2]) 
ax.plot(class3[:,0],class3[:,1],class3[:,2],'o') 

ax.set_xlabel('X-axis') 
ax.set_ylabel('Y-axis') 
ax.set_zlabel('Z-axis') 

plt.show() 

답변

1

3D 플로팅에 대해서는 matplotlib의 these limitations을 참조하십시오.

동적으로 좋은보기 (즉, 플롯을 이동하는 기능)가 필요한 경우 솔루션이 있다고 생각하지 않습니다. 그렇지 않으면 모든 플로팅 호출에 zorder 키워드를 전달하고 원하는 결과를 얻을 수 있습니다.

+1

감사합니다. Giulio. 불행히도 나는 데이터를 동적으로 볼 필요가있다. MayaVi를 살펴 보겠습니다. – shaleshock