使用python Mayavi 绘制矢量场图

安装

可参考mayavi文档 http://docs.enthought.com/mayavi/mayavi/installation.html#installing-with-pip

首先安装mayavi

 pip install mayavi

如果出现Microsoft Visual C++ 14.0 is required 则需安装对应的Windows c++库

可以参考https://blog.csdn.net/weixin_42057852/article/details/80857948

或者https://blog.csdn.net/gtf215998315/article/details/80194526

再安装PyQt5

pip install PyQt5

安装好后接下来就是代码

代码

import numpy as np
from mayavi import mlab
from sympy import *
from mayavi.mlab import *

def Demo():
    x,y,z = np.mgrid [0:1:20j , 0:1:20j , 0:1:20j]

    u = -y  
    v = x
    w = z #矢量场三坐标分量表达式

    x = Symbol('x')#引入符合x
    expr = sin(x)/ x#表达式形式
    f = lambdify(x,expr,"numpy")#表达式中x符合用数组代替
    data = np.linspace(1,10,10000)#取数组1至10,线性分割1000份

    print(data)
    print(f(data))#将数组data带入表达式

    mlab.quiver3d(u,v,w)#绘制矢量场
    mlab.outline()#绘制边框


def test_flow():
    x, y, z = np.mgrid[-5:5:40j, -5:54:40j, 0:4:20j]#x y z网格化,形成填充三维坐标数组
    u = y #矢量场x分量
    v = -x #矢量场y分量
    w = np.ones_like(z)*0.05#数组用1来填充  #矢量场z分量
    quiver3d(u, v, w,mask_points=10)#绘制矢量场
    obj = flow(u, v, w)#在矢量场中放置可移动物体以检查流场
    return obj

test_flow()

运行结果

使用python Mayavi 绘制矢量场图_第1张图片

是不是很漂亮,那个多边形物体可以移动到不同位置以检测流场 。

参考https://blog.csdn.net/qq_42731466/article/details/84894825

你可能感兴趣的:(python,科学计算)