2011-08-20 7 views
15

matplotlib에서 3D 벡터 필드를 플로팅하는 방법이 있습니까? 나는 quiver을 보았지만 "2 차원 벡터 필드"에 대해서만 이야기합니다. 3D 어딘가에 있나요?matplotlib의 3D 벡터 필드

LMGTFY는 :

"3-D vector field of arrows" matplotlib 

을하지만 제로 결과

+8

mayavi는 3D 벡터 필드를 플롯 할 수 있습니다 : http://github.enthought.com/mayavi/mayavi/mlab.html#id1 – HYRY

+2

링크가 끊어졌습니다! – denfromufa

답변

-1

나는 그렇게 생각하지 않아요을 반환
나는이 검색어에 의해 반환 될 차원의 대응에 대한 문서를 냈다. matplotlib의 3D 플로팅은 상당히 새롭고 지금까지의 모든 것입니다 : http://matplotlib.sourceforge.net/mpl_toolkits/mplot3d/index.html

아마도 벡터 플롯이 개발되고 있다면 matplotlib 메일 링리스트에 문의하십시오.

24

matplotlib 1.4.x부터는 떨림을 3d로 그릴 수 있습니다. 예제 디렉토리에

quiver3d_demo.py :

from mpl_toolkits.mplot3d import axes3d 
import matplotlib.pyplot as plt 
import numpy as np 

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

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2), 
         np.arange(-0.8, 1, 0.2), 
         np.arange(-0.8, 1, 0.8)) 

u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z) 
v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z) 
w = (np.sqrt(2.0/3.0) * np.cos(np.pi * x) * np.cos(np.pi * y) * 
    np.sin(np.pi * z)) 

ax.quiver(x, y, z, u, v, w, length=0.1) 

plt.show() 

enter image description here

+0

왜 3D 배열에 x, y, z 좌표가 있습니까 ??? 나는 그들을 읽는 법을 모릅니다. 그리고 내 자신을 입력하는 방법? 모든 도움은 위대한 감사입니다 –

+0

포인트는 3D 배열 일 필요는 없습니다. 자신의 1D 위치 배열 x, y, z 및 해당 속도 u, v, w를 만들거나로드 할 수 있습니다. 떨림에 대한 호출은 같습니다. – klimaat