2015-07-24 3 views
0

Я хотел бы построить трехмерную матрицу - по существу коробку чисел, каждая из которых помечена триадой координат x, y, z, назначив другой цвет каждой из точек x, y, z, согласно его величина (например, большее количество красных и меньших чисел в синем). Я не могу строить участки матрицы, мне нужно всего лишь построить всю матрицу.Участок 3D-матрицы с цветовой гаммой - Python

Если мы называем matrix3D моя матрица, ее элементы построены таким образом:

matrix3D[x][y][z] = np.exp(-(x**2+y**2+z**2)) 

Как я могу получить желаемый участок?

EDIT: Использование Mayavi2 Contour3D(), я попытался написать следующее:

from mayavi import mlab 

X = np.arange(0, n_x, 1) 
Y = np.arange(0, n_z, 1) 
Z = np.arange(0, n_z, 1) 
X, Y, Z = np.meshgrid(X, Y, Z) 
obj = mlab.contour3d(X, Y, Z, matrix3D, contours=4, transparent=True) 

, где n_x, n_y, n_z являются размерность 3 осей. Как я могу увидеть и/или сохранить изображение сейчас?

ответ

1

Если вам нужно построить все это, я думаю, что лучше всего взгляните на mayavi. Это позволит вам построить громкость, и вы сможете получить нужные результаты.

Я знаю, что вы сказали, что вам нужно построить всю вещь сразу, но это может быть . Вы можете использовать countourf построить так:

import numpy as np 
import matplotlib.pyplot as plt 

matrix3D = np.empty((10, 10, 10)) 
x = np.arange(10) 
y = np.arange(10) 
z = np.arange(10) 
matrix3D[x][y][z] = np.exp(-(x**2+y**2+z**2)) 

fig = plt.figure() 
ax = fig.add_subplot(plt.subplot(1, 1, 1)) 
ax.contourf(x, y, matrix3D[:, :, 3]) 

plt.show() 

Это дает вам кусочек 3D-матрицы (в этом примере четвёртой среза).

enter image description here

+0

Спасибо вам за ответ, у меня есть проблема с MayaVi (см редактирования). Вы можете мне помочь? Метод контура также в порядке, но я хотел бы сосредоточиться на полностью 3D-графике. – johnhenry

+0

@johnhenry У меня был вид, но у меня такая же проблема, как и у вас. Я получаю изображение, если я запускаю тесты майави, поэтому я бы предположил, что это то, как вы пытаетесь просмотреть данные, но я боюсь, что я не могу больше помочь. –

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