Контур - это кривая (в 3D-поверхности), которая посещает точки равной ценности. Для числовых данных он будет лежать на точках сетки или между ними путем интерполяции.
«Внешняя» часть вашего куба - это все нули, поэтому есть прыжок с индексами 10 и 90, который создает контурную поверхность.
Внутренние границы создаются, когда значения в вашей сетке пересекаются с равными значениями контура (по умолчанию, по-видимому, всего 3 значения).
Наконец, поскольку внешняя часть куба равна нулю, без прозрачности, вы увидите только это, и никакая вариация в значении не означает изменения цвета.
Приведем пример ниже с большим количеством уровней (9) и без нулевой границы, что дает горизонтальные контурные плоскости.
import numpy as np
from mayavi import mlab
cube = np.zeros((100,100,100))
cube[:,:,:] = np.linspace(0, 1, np.prod(cube.shape)).reshape(cube.shape).T
mlab.contour3d(cube, colormap="jet", opacity=0.5, contours=9)
mlab.show()
Вы также можете рассмотреть «разрезанные плоскости», которые производят двумерные срезы в трехмерных данных. На этих страницах есть примеры: http://docs.enthought.com/mayavi/mayavi/mlab_case_studies.html и http://docs.enthought.com/mayavi/mayavi/auto/examples.html