Я ищу способ сохранить постоянство цветовой шкалы (и цвета на сцене) независимо от того, какие данные я отображаю (например, допустим, я хочу, чтобы цвета были от 0 до 10, с текущей настройкой Mayavi будет корректировать цвета в соответствии с данными. , поэтому первый график будет от 0 до 1, второй от 0 до 2 и т. д.). Нормализация (vmin, vmax) не вариант, поскольку они просто нормализуют данные.
#Minimum working example
from numpy import sin, cos, mgrid, pi, sqrt
from mayavi import mlab
mlab.figure(fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
u, v = mgrid[- 0.035:pi:0.01, - 0.035:pi:0.01]
X = 2 / 3. * (cos(u) * cos(2 * v)
+ sqrt(2) * sin(u) * cos(v)) * cos(u) / (sqrt(2) -
sin(2 * u) * sin(3 * v))
Y = 2 / 3. * (cos(u) * sin(2 * v) -
sqrt(2) * sin(u) * sin(v)) * cos(u) / (sqrt(2)
- sin(2 * u) * sin(3 * v))
Z = -sqrt(2) * cos(u) * cos(u) / (sqrt(2) - sin(2 * u) * sin(3 * v))
for i in range(1,10):
S = sin(u)*i
mlab.mesh(X, Y, Z, scalars=S, colormap='YlGnBu', )
mlab.view(.0, - 5.0, 4)
mlab.colorbar(orientation='vertical')
mlab.show()
mlab.close(all=True)