《Python科学计算》Part1 WinPython之mayavi画图-显式函数与隐式函数

    xiaoxiao2021-12-14  17

    《Python科学计算》Part1 WinPython之mayavi画图-显函数与隐式函数

    一、显式函数

    1、典型的双峰值三维高斯模型

    import numpy as np from 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)

    当然上述式子中的np可以在表达式中省略掉,具体的写法和导入库的方式有关:

    #import numpy as np from numpy import * from mayavi import mlab x, y = ogrid[-2:2:20j, -2:2:20j] z = x * exp( - x**2 - y**2) #z = np.abs(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)此时代码中的np.orgid、np.exp、np.abs全部可以省掉

    稍作更改,给函数中的x取绝对值:

    import numpy as np from mayavi import mlab x, y = np.ogrid[-2:2:20j, -2:2:20j] #z = x * np.exp( - x**2 - y**2) z = np.abs(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)

    或者:

    from numpy import * from mayavi import mlab x,y = ogrid[-2:2:160j,-2:2:160j] z=abs(x)*exp(-x**2-(y/0.75)**2) pl = mlab.surf(x,y,z,warp_scale=2) mlab.axes(xlabel='x',ylabel='y',zlabel='z') mlab.outline(pl) mlab.show()

    2、mayavi中的示例:

    from numpy import * from mayavi import mlab # Create the data. dphi, dtheta = pi/20.0, pi/20.0 [phi,theta] = mgrid[0:pi+dphi*1.5:dphi,0:2*pi+dtheta*1.5:dtheta] m0 = 4; m1 = 3; m2 = 2; m3 = 3; m4 = 6; m5 = 2; m6 = 6; m7 = 4; r = sin(m0*phi)**m1 + cos(m2*phi)**m3 + sin(m4*theta)**m5 + cos(m6*theta)**m7 x = r*sin(phi)*cos(theta) y = r*cos(phi) z = r*sin(phi)*sin(theta) # View it. s = mlab.mesh(x, y, z,representation="surface", line_width=1.0 ) #s = mlab.mesh(x, y, z, representation="wireframe", line_width=1.0 ) mlab.show()注释的一行是线框模型。运行结果:

    二、隐式函数

    1、一个椭球形

    import numpy from mayavi.mlab import * x,y,z = numpy.ogrid[-50:50:100j,-50:50:100j,-50:50:100j ] s = 0.5*x**2 + y**2 + 2.0*z**2 obj = contour3d(s, contours=4)

    2、同样的一个椭球形,用不同的生成函数渲染

    import numpy as np from mayavi import mlab x,y,z = np.ogrid[-5:5:200j,-5:5:200j,-5:5:200j] s = 0.5*x**2 + y**2 + 2.0*z**2 src = mlab.pipeline.scalar_field(s) mlab.pipeline.iso_surface(src,contours=[1. , ],) mlab.show()

    3、心形函数,画出来怎么看都不像,不过确实是画出来了,将就着看看

    from numpy import * from mayavi import mlab x, y ,z= ogrid[-3:3:200j, -3:3:200j, -3:3:200j] #心形函数 s = (x**2 + (9/4)*(y**2) + z**2 - 1)**3 - (x**2)*(z**3) - (9/80)*(y**2)*(z**3) src = mlab.pipeline.scalar_field(s) mlab.pipeline.iso_surface(src,contours=[1., ],) mlab.show()

    3、附加一个二维的心形曲线

    from numpy import * from mayavi import mlab from sympy.parsing.sympy_parser import parse_expr from sympy import plot_implicit ezplot = lambda expr: plot_implicit(parse_expr(expr)) #笛卡尔心形函数 ezplot('17*x**2 - 16*Abs(x)*y+17*y**2-256')

    ______________________________________________________________________________________________________________________________

    1、安装离线的pip包,然后利用pip安装其它离线包:

    pip的安装

    1、从https://pypi.python.org/pypi/pip#downloads下载所需的.whl文件

    2、将下载的文件放入Python的根目录

    我的根目录是D:\Python27,所以将文件放入此目录下

    3、打开cmd,进入Python所在目录并执行以下语句

    D:\Python27> python.exe pip-9.0.1-py2-py3-none-any.whl \pip  install  pip-9.0.1-py2-py3-none-any.whl

    稍等一会就可以完成安装

    4、验证pip安装成功

    安装easy_install(仍然是在python的安装根目录下)

    D:\Python27> pip install setuptools

    安装成功后会提示Requirement already satisfied……

    转载请注明原文地址: https://ju.6miu.com/read-964586.html

    最新回复(0)