2016-02-29 5 views
2

Отредактировано после не удовлетворяющего первого ответа и необъяснимого downvote:Альтернатива MayaVi для научной 3d черчения

Мне нужно построить скалярное поле, которое структурировано в 3D сетке как тот, который следует:

import numpy as np 
from mayavi import mlab 

dt = 10 
X,Y,Z = np.mgrid[0:dt,0:dt,0:dt] 

F = X**2+Y**2+Z**2 

test = mlab.figure(size = (1024,768), bgcolor = (1,1,1), fgcolor = (0, 0, 0)) 
sf = mlab.pipeline.scalar_field(X,Y,Z,F) 
vl = mlab.pipeline.volume(sf) 
mlab.outline() 
mlab.axes() 
mlab.title('Can not change font size for this title') 
mlab.xlabel('Only end ticks') 
mlab.ylabel('No major ticks') 

enter image description here

Я хотел бы сделать это в Python, так как я моделировать множество наборов данных на этом языке, и я хотел бы быть в состоянии чтобы визуализировать их быстро, поскольку я выполняю чувствительность в своих параметрах моделирования.

Mayavi, казалось, предлагал довольно стандартные подпрограммы для научной 3D-графики. Однако, когда дело доходит до сообщения этих сюжетов в публикациях, очень простые настройки сюжета недоступны, например, основные и второстепенные тики в осях. Кроме того, те самые основные функции, которые поддерживаются, даже не работают должным образом до настоящего времени (например, см. Пример в размере шрифта bug и here).

Есть ли достойный и простой в использовании научный 3D Закладка библиотеки в Python? Я пробовал изучать vtk, но примеры веб-сайтов выглядят устаревшими (например, volume rendering пример, который не запускается, я пытался редактировать многие строки кода, чтобы он работал без везения), а другие, похоже, согласны с тем, что документации нет.

По приличной научной библиотеке черчения Я имею в виду следующего:

  • Позволяет настраивать шрифты осей, метки, заголовки и т.д.
  • Может редактировать ось клещей интервала (с основными тиками, по крайней мере) ,
  • Можно добавить цветные панели
  • Имеет документацию.

Заранее благодарен!

ответ

1

Вы должны попробовать matplotlib, если вы еще этого не сделали. Нетрудно использовать meshgrid и contour или contourf (вы можете легко найти скрипты в Интернете) для построения данных по структурированным сеткам. Это возможно даже на неструктурированных сетках (Проверьте это: https://grantingram.wordpress.com/plotting-2d-unstructured-data-using-free-software/)

У этого есть свои характеристики «приличной» научной библиотеки построения.

EDIT: Когда вы говорите «3D», я предположил, что вам нужен график функции из двух переменных, так что его график 3D.

Если, однако, у вас есть данные в зависимости от 3-х пространственных переменных, я предполагаю, что вы хотите иметь возможность отображать плоскости разреза и т. Д. Затем я рекомендую вам выводить ваши данные в файлы и использовать соответствующий пакет визуализации, такой как ParaView (который использует VTK) или TecPlot (несвободный). Вы можете автоматизировать конвейер визуализации с помощью сценариев (я считаю, что ParaView поддерживает скрипты Python).

+1

Спасибо за ваш ответ. Я согласен с вами в том, что matplotlib - отличная библиотека, и она чрезвычайно поддерживается в других местах. Тем не менее, я ищу библиотеку, которая поддерживает «3D-заговор» для таких фигур, как в моем вопросе. Я уточнил свой вопрос для большей ясности. – pysolver

+1

Спасибо, что обратились ко мне в Paraview.Я считаю, что это не так просто, как MayaVi. Конечно, есть кривая обучения, но она может быть встроена в проект Python, который для исследователей, использующих эту среду, очень удобен. – pysolver

 Смежные вопросы

  • Нет связанных вопросов^_^