Имам проект, в който бих искал да начертая резултатите от някаква манипулация на SymPy с mayavi. По-специално, бих искал да използвам някаква функция в contour3d
. Ето какво измислих, но не работи
#!/usr/bin/env python2
from sympy import *
from mayavi.mlab import *
from functools import partial
import numpy as np
def XYZ(f, xp, yp, zp):
return f.evalf(subs={x:xp,y:yp,z:zp})
x, y, z = symbols('x y z')
r=x**2+y**2+z**2
F=partial(XYZ, r)
X, Y, Z = np.mgrid[-3:3:50j, -3:3:50j, -3:3:50j]
obj=contour3d(X, Y, Z, F)
Въпреки това се показват две грешки (и двете от sympify)
1.) Както е написано, грешката е
ValueError: sequence too large; must be smaller than 32
2.) Намаляване на броя на точките (до 10 във всяка посока)
ValueError: negative dimensions are not allowed
Някакви мисли как да накарате нещо подобно да работи? Мисля, че тези два пакета ще вървят добре заедно.