我在网上找到了这段代码,但是它不起作用。
from numpy import *
from mayavi import *
N = 100
a = 0.
b = 1.
dt = b / N;
q = [1., -1., 1., -1.]
qpos = [[0.56, 0.56, 0.50],
[0.26, 0.76, 0.50],
[0.66, 0.16, 0.50],
[0.66, 0.86, 0.50]]
x,y,z = mgrid[a:b:dt, a:b:dt, 0.:1.:0.5]
Ex, Ey, Ez = mgrid[a:b:dt, a:b:dt, 0.:1.:0.5]
for i in range(N):
for j in range(N):
Ex[i,j] = 0.0
Ey[i,j] = 0.0
for num in range(len(q)):
rs = ((x[i,j] - qpos[num][0])**2 + (y[i,j] - qpos[num][1])**2)
r = sqrt(rs)
q1x = q[num] * (x[i,j] - qpos[num][0]) / (r * rs)
q1y = q[num] * (y[i,j] - qpos[num][1]) / (r * rs)
Ex[i,j] = q1x + Ex[i,j]
Ey[i,j] = q1y + Ey[i,j]
fig = figure(fgcolor=(0,0,0), bgcolor=(1,1,1))
streams = list()
for s in range(len(q)):
stream = flow(x,y,z,Ex, Ey, Ez, seed_scale=0.5, seed_resolution=1, seedtype='sphere')
streams.append(stream)
fig.scene.z_plus_view()
fig.scene.parallel_projection = True
我已经安装了numpy和mayavi,但是当我试图运行。不能识别图形和流程函数。我还需要别的图书馆吗?
首先,检查您是否有NumPy和Mayavi实际工作。只要运行python
(或IDLE),当您看到>>>
提示符时,输入import numpy
,然后是import mayavi
。如果您看到任何ImportError
消息(或任何其他错误),那么您没有。通常,您应该拥有的只是另一个>>>
提示符。
它应该是这样的:
$ python
Python 2.7.10 (default, May 23 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy
>>> import mayavi
>>>
如果你让它工作,一个大胆的猜测是你可以试着在import
语句下面添加这个:
from mayavi.mlab import flow
from mayavi.tools.figure import figure
也许它会起作用。
(我实际上不熟悉Mayavi库,不知道你的代码是做什么的-只是在谷歌上找到了可疑的函数。)