矢量场的研究
Study of a vector field
我有一个包含 6 列的输入数据,其中前三列是位置 x、y、z,其余是矢量场的矢量分量。我只能用 python (x,y,z,px,py,pz) 中的 mayavi 库的 quiver3d 制作 3d 图,创建 6 个 numpy 数组 x,y,z,px,py,pz 只是为了可视化它。
最好是通过任何方式获得 3D 图形,我可以在其中插入剖切面以显示其中包含的矢量,或者我可以在其中看到有助于我理解的彩色图的平面它的行为。有帮助吗?
输入如下:
https://pastebin.com/raw/pmGguxUc
这是我使用 quiver3d 函数获取可视化效果的代码。
将 numpy 导入为 np
将 mayavi.mlab 导入为 mlab
data = np.loadtxt("vectorfield.dat", dtype = float)
dataTranspuesta=data.T
x=dataTranspuesta[0]
y=dataTranspuesta[1]
z=dataTranspuesta[2]
px=dataTranspuesta[3]
py=dataTranspuesta[4]
pz=dataTranspuesta[5]
mlab.quiver3d(x, y, z, px, py, pz, line_width=0.7 ,scale_mode="vector" ,scale_factor=0.0045,mask_points=7 ,mode="arrow", colormap="seismic" )
mlab.show()
使用 mayavi 的管道可以更轻松地组织所有内容。它们与使用 mlab 绘图函数基本相同,但以流水线方式组织您的可视化任务。
Pfld = mlab.pipeline.vector_field(x, y, z, px, py, pz)
Quiver = mlab.pipeline.vectors(Pfld)
Pcut = mlab.pipeline.vector_cut_plane(Quiver, plane_orientation='x_axes')
您还可以绘制矢量大小的等值面等值线
Pmag = mlab.pipeline.extract_vector_norm(Pfld)
Piso = mlab.pipeline.iso_surface(Pmag)
和标量场的平面切割可以通过mlab.pipeline.scalar_cut_plane(Pmag)
或mlab.pipeline.image_plane_widget(Pmag)
实现
有关允许的参数、装饰等的更多详细信息,请参见documentations
还有examples 1和
exmaples 2 可能符合您的需求。
我有一个包含 6 列的输入数据,其中前三列是位置 x、y、z,其余是矢量场的矢量分量。我只能用 python (x,y,z,px,py,pz) 中的 mayavi 库的 quiver3d 制作 3d 图,创建 6 个 numpy 数组 x,y,z,px,py,pz 只是为了可视化它。
最好是通过任何方式获得 3D 图形,我可以在其中插入剖切面以显示其中包含的矢量,或者我可以在其中看到有助于我理解的彩色图的平面它的行为。有帮助吗?
输入如下: https://pastebin.com/raw/pmGguxUc
这是我使用 quiver3d 函数获取可视化效果的代码。 将 numpy 导入为 np 将 mayavi.mlab 导入为 mlab
data = np.loadtxt("vectorfield.dat", dtype = float)
dataTranspuesta=data.T
x=dataTranspuesta[0]
y=dataTranspuesta[1]
z=dataTranspuesta[2]
px=dataTranspuesta[3]
py=dataTranspuesta[4]
pz=dataTranspuesta[5]
mlab.quiver3d(x, y, z, px, py, pz, line_width=0.7 ,scale_mode="vector" ,scale_factor=0.0045,mask_points=7 ,mode="arrow", colormap="seismic" )
mlab.show()
使用 mayavi 的管道可以更轻松地组织所有内容。它们与使用 mlab 绘图函数基本相同,但以流水线方式组织您的可视化任务。
Pfld = mlab.pipeline.vector_field(x, y, z, px, py, pz)
Quiver = mlab.pipeline.vectors(Pfld)
Pcut = mlab.pipeline.vector_cut_plane(Quiver, plane_orientation='x_axes')
您还可以绘制矢量大小的等值面等值线
Pmag = mlab.pipeline.extract_vector_norm(Pfld)
Piso = mlab.pipeline.iso_surface(Pmag)
和标量场的平面切割可以通过mlab.pipeline.scalar_cut_plane(Pmag)
或mlab.pipeline.image_plane_widget(Pmag)
有关允许的参数、装饰等的更多详细信息,请参见documentations
还有examples 1和 exmaples 2 可能符合您的需求。