import numpy as np
from mayavi import mlab

u,v = np.mgrid[0:2*np.pi:100j, 0:2*np.pi:100j]

x = np.sin(u)
y = np.sin(v)
z = np.sin(u+v)
#mlab.options.backend = 'envisage'

mlab.figure(bgcolor=(0.5,0.5,0.5), size=(800, 600))

#mlab.mesh(x, y, z, color=(0.3,0.4,0.8)) 
mlab.mesh(x, y, z, colormap='blue-red')

mlab.plot3d([np.sqrt(3)/2.0, np.sqrt(3)/2.0], [1/2.0, 1/2.0], [-0.5, 2], color=(1,0,0), tube_radius=0.02)

mlab.points3d([np.sqrt(3)/2.0], [0.5], [1], color=(1,1,0), scale_factor=0.1, resolution=20)

x2, y2 = np.mgrid[-1.2:1.2:10j, -1.2:1.2:10j]

mlab.surf(x2, y2, x2/x2, color=(0.953125, 0.65625, 0.4), opacity=0.7)#, extent=[-1.2,1.2,-1.2,1.2,0.9,1.1])

mlab.show()