三维绘图之Mayavi的安装
blog.csdn/pipisorry/article/details/40662397
Mayavi的安装
mayavi已经⽀持python3了:Done, supports 2.5, 2.6, 2.7 and 3.2+
下载安装依赖vtk
linux下:sudo apt-get install python-vtk(lz未测试过)
windows下pip安装:
(lz是在mingw下操作的,cmd也同样)
下载并安装win编译好版本(⽀持python3),如VTK-7.0.0-cp34-cp34m-win_amd64.whl $python -m pip install --upgrade pip
$pip install VTK-7.0.0-cp34-cp34m-win_amd64.whl
$python
>>>import vtk
或者也可以在vtk官⽹下载并安装Standalone Python Interface (Installer),如vtkpython-7.(lz发现安装后好像只⽀持python2?)
下载安装mayavi
window下pip安装:
下载win编译好版本,如mayavi-4.4.4-cp34-cp34m-win_amd64.whl
pip install mayavi-4.4.4-cp34-cp34m-win_amd64.whl
$python
>>>import mayavi
[mayavi doc: installation]
import
如果是直接安装的from mayavi import mlab
通过enthought安装的:from enthought.mayavi import mlab
运⾏时可能的错误及解决
from mayavi import mlab
ImportError: No module named 'tvtk.custom.light'
RuntimeError: module compiled against API version a but this version of numpy is 9 ImportError: ultiarray failed to import
解决:pip install --upgrade numpy
从numpy 1.9更新到了1.11
from scipy import stats
from ._ufuncs import *
ImportError: DLL load failed: The specified module could not be found.
重装numpy和scipy[linux和windows下安装python拓展包]
pl = mlab.surf(x, y, rv.pdf(pos))
ImportError: Could not import backend for traits
Also make sure that either wxPython or PyQT is installed.
python安装numpy教程⽽wxpython不⽀持python3,lz已放弃,转向matplotlib.mplot3d.[三维绘图之matplotlib.mplot3d ⼯具包]
⽪⽪blog
Mayavi.mlab模块绘制3D曲⾯
NumPy快速产⽣能进⾏⼴播运算的数组的ogrid对象
>>> x,y = np.ogrid[:5,:5]
>>> x
array([[0], [1], [2], [3], [4]])
>>> y
array([[0, 1, 2, 3, 4]])
mgrid对象的⽤法和ogrid对象类似,但是它所返回的是进⾏⼴播之后的数组。请读者运
⾏“np.mgrid[:5,:5]”试试看。
ogrid是⼀个很有趣的对象,它和多维数组⼀样,⽤切⽚元组作为下标,返回的是⼀组可以⽤来⼴播计算的数组。其切⽚下标有两种形式:
开始值:结束值:步长,和“np.arange(开始值, 结束值, 步长)”类似
开始值:结束值:长度j,当第三个参数为虚数时,它表⽰所返回的数组的长度,和“np.linspace(开始值, 结束值, 长度)”类似:
>>> x, y = np.ogrid[:1:4j, :1:3j]
>>> x
array([[ 0.        ],
[ 0.33333333],
[ 0.66666667],
[ 1.        ]])
>>> y
array([[ 0. ,  0.5,  1. ]])
利⽤ogrid的返回值,我们能很容易计算⼆元函数在等间距⽹格上的值。
⽪⽪blog
Mayavi.mlab绘图实例
绘制三维曲⾯
02-numpy/numpy_ogrid_mlab.py
⽤ogird产⽣⼆维坐标⽹格,计算三维空间的曲⾯,使⽤Mayavi的mlab模块快速绘制3D曲⾯import numpy as np
from enthought.mayavi import mlab
x, y = np.ogrid[-2:2:20j, -2:2:20j]
z = x * np.exp( - x**2 - y**2)
pl = mlab.surf(x, y, z, warp_scale="auto")
mlab.axes(xlabel='x', ylabel='y', zlabel='z')
mlab.outline(pl)
mlab.show()
[使⽤ogrid创建的三维曲⾯]
from:blog.csdn/pipisorry/article/details/40662397
ref: mayavi doc
Mayavi2 tips
mayavi homepage
⽤python做科学计算:Mayavi-更⽅便的可视化