2013-06-19 1 views
0

В настоящее время у меня есть карта тепла, которая представляет собой 2D-плавучую матрицу (список списков поплавков для точной), и я могу легко ее отображать в 2D с matplotlib, но я бы хотел отобразить ее в 3D-графике, чтобы индексы столбцов и строк могут соответствовать значениям X и Y соответственно, а значениями в матрице являются значения Z (высота). Что я могу использовать для этого? Я попытался использовать Axes3D, но он не казался очень подходящим (или, может быть, я использовал его неправильно?). То, что я хочу сделать, концептуально очень просто, чтобы притвориться, что матрица является DEM и отображает ее как таковую.Как отображать float-матрицу как значения высоты в 3D-графике в Python?

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

Любые идеи?

Эти два вопроса взаимосвязаны, но не совсем ответить на мой вопрос:

3d plotting with python

Python: 3D contour from a 2D image - pylab and contourf

NB: Матрица поплавок довольно велика, как правило, 100x100 или более, и в последний раз Я попытался построить его в 3D, в моей системе закончилась память, и он начал биться.

+0

См: Http: // Matplotlib .org/gallery.html # mplot3d – tacaswell

+0

@tcaswell Эти методы требуют всех точек, явно определенных в трехмерном пространстве. Плавающая матрица I должна быть на регулярной основе размещена как пиксели (которые я уже экспортирую в изображение). – Leeward

+0

2D-массив поплавков _does_ явно определяет точки в 3D. – tacaswell

ответ

1

Ваш случай использования кажется, что это специально сделано для MayaVi/MLab, которая имеет функцию, которая делает именно то, что вы просите и разрешения по умолчанию интерактивный 3D вращение:

import numpy as np; from mayavi import mlab 
data = np.random.random((100,100)) 
mlab.surf(data) 
mlab.show() 
+0

Спасибо! Это именно то, что я искал. Он работает отлично. – Leeward

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