mayavi-科学计算三维绘图
Tofloor
poster avatar
fuyao
deepin
2018-07-12 18:12
Author
本帖最后由 fuyao 于 2018-7-12 11:01 编辑

科学计算中一些简单的三维图可以用matplotlib画,但是复杂还是用mayavi来画,下面是安装mayavi时注意的问题:
系统:deepin15.6
python环境: Anaconda3-5.1.0-Linux-x86_64.sh; Python 3.6.4

1. 用conda install mayavi安装出现错误,因此我用pip安装。
2. pip install mayavi, 前面安装都比较正常,依赖的库比如vtk也都能正常安装。但是最后安装mayavi的时候出现下面错误:
     running gen_docs
    QXcbConnection: Could not connect to display
    经过上网搜索发现,anaconda我用root安装到/opt/anaconda3下,我用xrdp远程登录deepin用的是自己的账户,在终端中su - 之后用root账号安装,QT环境可能出现了什么问题。之后我用root账号xrdp登录到deepin,然后再pip install mayavi,成功了。再python中import mayavi也没问题,下面测试一下mayavi绘图。需要注意的是:mayavi是python import时的库名,而mayavi2是一个独立的程序,可以which mayavi2查看路径也可以直接运行。
3. 拿官方的一个demo测试:http://docs.enthought.com/mayavi/mayavi/mlab.html#a-demo
  1. # Create the data.
  2. from numpy import pi, sin, cos, mgrid
  3. dphi, dtheta = pi/250.0, pi/250.0
  4. [phi,theta] = mgrid[0:pi+dphi*1.5:dphi,0:2*pi+dtheta*1.5:dtheta]
  5. m0 = 4; m1 = 3; m2 = 2; m3 = 3; m4 = 6; m5 = 2; m6 = 6; m7 = 4;
  6. r = sin(m0*phi)**m1 + cos(m2*phi)**m3 + sin(m4*theta)**m5 + cos(m6*theta)**m7
  7. x = r*sin(phi)*cos(theta)
  8. y = r*cos(phi)
  9. z = r*sin(phi)*sin(theta)

  10. # View it.
  11. from mayavi import mlab
  12. s = mlab.mesh(x, y, z)
  13. mlab.show()
Copy the Code
新建demo.py文件,将上面的内容放入其中,然后在终端python demo.py,下面是程序运行结果:

分辨率好低,应该是工作站的显卡太渣的缘故。。。

4. 之后打算将mayavi嵌入到pyqt5中,用于C++主程序生成数据的后处理部分,做出来之后再更新吧。

Reply Favorite View the author
All Replies
avatar
successfully
deepin
2018-07-12 18:33
#1
给你一个赞
Reply View the author
avatar
h3l
deepin
2018-07-12 18:56
#2
这朵菊花很邪恶~~~~~~~~~~
Reply View the author
avatar
海天鹰
deepin
2018-07-12 20:40
#3
这个不错哦
Reply View the author
avatar
Ligocut光剪视频剪辑软件
deepin
Backbone of ecological co-construction group
2018-07-13 09:42
#4
希望能加入到QT!
Reply View the author
avatar
fuyao
deepin
2018-07-13 16:01
#5
berners 发表于 2018-7-13 01:42
希望能加入到QT!

mayavi基于vtk,vtk是C++写的,QT可以调用vtk
Reply View the author