Можно ли изменить цвет изо-поверхности в зависимости от высоты точек (в python/mayavi)? Я могу создать визуализацию изоповерхности с помощью своего сценария, но я не знаю, как сделать цвет iso_surface изменением с осью z, чтобы он был, скажем, черным внизу и белым в верхней части графика. Мне нужно это, чтобы понять визуализацию, когда она просматривается непосредственно над графиком. Если вы знаете какой-либо другой способ достижения этого, сообщите мне об этом. Я хочу показать только один участок iso_surface.Изменить цвет в зависимости от высоты в Mayavi iso_surface
1
A
ответ
1
Мне удалось это сделать, объединив код из примеров http://docs.enthought.com/mayavi/mayavi/auto/example_atomic_orbital.html#example-atomic-orbital и http://docs.enthought.com/mayavi/mayavi/auto/example_custom_colormap.html. В основном вы должны создать поверхность, как в примере с атомной орбитой, а затем заставить ее менять цвет в зависимости от x. Вы должны создать массив значений для x. Мой код (соответствующая часть):
#src.image_data.point_data.add_array(np.indices(list(self.data.shape)[self.nx,self.ny,self.nz])[2].T.ravel())
src.image_data.point_data.add_array(np.indices(list(self.data.shape))[0].T.ravel())
src.image_data.point_data.get_array(1).name = 'z'
# Make sure that the dataset is up to date with the different arrays:
src.image_data.point_data.update()
# We select the 'scalar' attribute, ie the norm of Phi
src2 = mlab.pipeline.set_active_attribute(src, point_scalars='scalar')
# Cut isosurfaces of the norm
contour = mlab.pipeline.contour(src2)
# contour.filter.contours=[plotIsoSurfaceContours]
# contour.filter.contours=[plotIsoSurfaceContours[0]]
min_c = min(contour.filter._data_min * 1.05,contour.filter._data_max)
max_c = max(contour.filter._data_max * 0.95,contour.filter._data_min)
plotIsoSurfaceContours = [ max(min(max_c,x),min_c) for x in plotIsoSurfaceContours ]
contour.filter.contours= plotIsoSurfaceContours
# Now we select the 'angle' attribute, ie the phase of Phi
contour2 = mlab.pipeline.set_active_attribute(contour, point_scalars='z')
# And we display the surface. The colormap is the current attribute: the phase.
# mlab.pipeline.surface(contour2, colormap='hsv')
xxx = mlab.pipeline.surface(contour2, colormap='gist_ncar')
colorbar = xxx.module_manager.scalar_lut_manager
colorbar.reverse_lut = True
lut = xxx.module_manager.scalar_lut_manager.lut.table.to_array()
lut[:,-1] = int(plotIsoSurfaceOpacity * 254)
xxx.module_manager.scalar_lut_manager.lut.table = lut
# mlab.colorbar(title='Phase', orientation='vertical', nb_labels=3)
self.data мои данные, и по неизвестным причинам, если вы хотите установить непрозрачность вашей поверхности вы должны обратить LUT первым, а затем установите непрозрачность. Умножение на 254 вместо 255 выполняется, чтобы избежать возможной ошибки в майави. Надеюсь, это поможет кому-то.
Смежные вопросы
- 1. удалить часть iso_surface в mayavi
- 2. Vertex цвет в зависимости от его высоты
- 3. Цвет бара в зависимости от высоты в ggplot2
- 4. Datamap - Изменить цвет в зависимости от значения
- 5. изменить цвет в зависимости от значения SSRS
- 6. изменить цвет в зависимости от местоположения
- 7. Изменить цвет в зависимости от оставшегося времени
- 8. Цвет в зависимости от расстояния
- 9. Как изменить высоту UIView в зависимости от высоты UILablel внутри?
- 10. Как изменить высоту элемента в зависимости от высоты окна/документа?
- 11. Как изменить ширину img в зависимости от высоты img
- 12. Как изменить размер текста в зависимости от ВЫСОТЫ div?
- 13. Изменение высоты TableViewCell в зависимости от label.text?
- 14. Отзывчивая карусель в зависимости от высоты браузера
- 15. изменить цвет текста в Powerpoint в зависимости от исходного цвета
- 16. Изменить цвет кнопки в зависимости от другого столбца в таблице
- 17. Изменить цвет строки в зависимости от значения в Java
- 18. Изменить свойства DIV в зависимости от браузера
- 19. django admin: изменить цвет значения ячейки в зависимости от содержимого
- 20. Я хочу изменить цвет переключателя в зависимости от его идентификатора
- 21. Изменить цвет стрелки в зависимости от значения ячейки?
- 22. ggplot2 - изменить цвет линии в зависимости от имени переменной
- 23. Изменить цвет текста в зависимости от оператора 'if'
- 24. Как изменить цвет ячейки в зависимости от изменения значения
- 25. Как изменить цвет индикатора выполнения в зависимости от значения?
- 26. jQuery/javascript изменить цвет текста в зависимости от дня
- 27. Изменить цвет текста в зависимости от фона с помощью D3
- 28. Изменить цвет вкладок в зависимости от того, какая вкладка выбрана
- 29. Как изменить цвет динамически в зависимости от ширины
- 30. Vim: изменить цвет в зависимости от глубины углубления/контроля потока?