nodes.glyph.scale_mode = 'scale_by_vector'
nodes.mlab_source.dataset.point_data.vectors = np.tile(np.random.random((
    5000,)), (3, 1))
nodes.mlab_source.dataset.point_data.scalars = np.random.random((5000,))
Mayavi points3d with different size and colors