2012-02-06 4 views
3

x, y, z 점 목록에서 3D 그림을 만들려고합니다. 그리고 네 번째 변수 rho의 값에 따라 색을 표시하고 싶습니다.Python matplotlib : 4D에 대한 색이있는 plot3D

현재 보유 중입니다.

fig = plt.figure() 
ax = fig.add_subplot(111, projection='3d') 
ax.plot3D(cell_x, cell_y, cell_z, linestyle='None', marker='o', markersize = 5, antialiased=True) 
ax.set_xlim3d(0.45, 0.55) 
ax.set_ylim3d(0.45, 0.55) 
ax.set_zlim3d(0.45, 0.55) 

내 x, y, z 점의 색으로 cell_rho (내 네 번째 배열)를 추가하는 방법은 무엇입니까? (예 : 제트 컬러 맵용).

대단히 감사합니다.

편집 : 18000 점의 스 캐터 플롯은 마커가있는 plot3d에 비해 매우 느리기 때문에 분산 형 플롯을 사용할 수 없습니다.

+0

다음 줄에있는 항목 : http://stackoverflow.com/questions/9134879/how-to-plot-a-multicolored-curve-using-a-single-plot-command-in-matplotlib? –

+0

그걸로조차도, 내 플롯 3D의 "색상"옵션에 전달할 수있는 값으로 rho를 변환하는 방법을 이해하지 못합니다. – Vincent

+0

여러 줄을 매쉬하려고합니다 (http : //www.scipy .org/Cookbook/Matplotlib/MulticoloredLine) 및 3d 라인 (http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/tutorial.html#line-plots)? – matt

답변

5

간단한 3D 산점도를 표시하려면 scatter을 사용할 수 없습니까?
예,

x, y, z = randn(100), randn(100), randn(100) 
fig = plt.figure() 
from mpl_toolkits.mplot3d import Axes3D 
ax = fig.add_subplot(111, projection='3d') 
ax.scatter(x, y, z, c=randn(100)) 
plt.show() 

(내가 python -pylab에서 위의 코드를 실행하는거야.)

enter image description here

plot3D 당신은 RGB로 네 번째 차원을 변환해야한다는, 반대로 보인다

튜플.

+0

제 문제는 제 18000 포인트의 산점도가 마커가있는 plot3D보다 느린 점입니다. – Vincent

관련 문제