2015-07-15 33 views
9

Chcę wykonać kilka wykresów 3D, aby zwizualizować niektóre dane. Używam matplotlib, ale funkcje 3D programu matplotlib nie są tak potężne, jak rysowanie 2D. Zauważyłem, że Mayavi jest bardzo potężny. Nawet matplotlib poleca to w http://matplotlib.org/mpl_toolkits/mplot3d/faq.html Jednak większość mojej poprzedniej pracy jest wykonywana w Pythonie 3, ale MayaVi nie obsługuje jeszcze Pythona 3.Wykreślanie grafiki 3D w języku Python 3

Jak mogę wykreślić grafikę 3D w Pythonie 3?

+1

[pyopengl] (http://pyopengl.sourceforge.net/), [pyvtk] (https://pypi.python.org/pypi/PyVTK/) powinny być łatwiejsze w użyciu, ale nie bardzo pewne, ponieważ używam 'pyopengl'. – avstenit

+0

Zrobiłem sobie trochę czasu, aby nieco ułożyć pytanie w kierunku, w którym się znajdujemy, aby moderatorzy StackOverflow nie chcieli od razu zamknąć pytania, a my moglibyśmy być tu naprawdę pomocni. –

Odpowiedz

5

to stosunkowo nowa struktura w ramach aktywnego rozwoju, która ostatnio stała się wystarczająco silna i elastyczna (w interfejsach wysokiego poziomu), aby zastąpić moje własne wykorzystanie mayavi. Minusem jest to, że teraz jest trochę bardziej zaangażowany w pewne rzeczy, ponieważ ten wysoki poziom rzeczy wciąż jest rozwijany. Obserwując jego postępy przez pewien czas, jestem przekonany, że pozostałe problemy zostaną dość szybko zaadresowane, i myślę, że będzie to skutkować solidnym interfejsem podobnym do mayavi, ale z bardziej zróżnicowanymi funkcjami, które są względnie łatwe do modyfikacji na niższych poziomach. Jest to szczególnie ważne w porównaniu do mayavi, który ma wiele potężnych cech, ale z którym stosunkowo trudno jest sobie poradzić z dala od głównych, dobrze udokumentowanych interfejsów.

Też słyszałem dobre rzeczy o glumpy i PyQtGraph, ale nie próbowałem tych. Dokumentacja Glumpy'ego wydaje się stosunkowo skromna i skupia się na operacjach stosunkowo niskiego poziomu w porównaniu do mayavi, ale jej przykłady wykazują szeroki zakres potężnych efektów. PyQTGraph ma bardziej wyrafinowany interfejs użytkownika (być może bardziej znany, jeśli podoba ci się materiał uav mayavi, choć nie jest taki sam) i może niektóre inne funkcje drukowania.

Oczywiście można również użyć OpenGL bezpośrednio, ale oznacza to ponowne wymyślenie wielu kół. Skłonny do tego, wydaje mi się, że vispy (a może glumpy) jest nadal dobrym wyborem, ponieważ jego opakowania opengl na niskim poziomie są miłe, ale można potencjalnie wykorzystać jego wyższy poziom.

+0

Wygląda na to, że funkcje Vispy na wysokim poziomie są wciąż rozwijane i brakuje niektórych przydatnych funkcji, takich jak osie. Wiza opakowania jest rozwijana przez programistę vispy. Jego funkcja wysokiego poziomu jest dojrzalsza niż funkcja vispy. – iuradz

+0

Vispy ma również funkcje, których nie ma visvis, a ponieważ jest w fazie aktywnego rozwoju, uznałem, że lepiej mi pasuje. Jeśli nie masz tych samych wymagań, może to być świetny wybór. – inclement