from sympy.plotting import plot3d_parametric_surface
p = plot3d_parametric_surface(sin(x)*sin(y), sin(x)*cos(y), cos(x), (x, 0, pi), (y, 0, 2*pi))
p[0].surface_color = lambda a, b : cos(4*a)*sin(2*b) p.show()