Plotagem de Voxels 3D com Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Este laboratório irá guiá-lo através do processo de criação de um gráfico de voxels 3D usando a biblioteca Matplotlib em Python. Gráficos de voxels são úteis para visualizar dados 3D de uma forma que é clara e esteticamente agradável. Neste laboratório, usaremos a função Axes3D.voxels para criar um gráfico de voxels de dois cubos e uma ligação entre eles.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar as bibliotecas necessárias

Primeiramente, precisamos importar as bibliotecas necessárias. Neste caso, usaremos Matplotlib e NumPy.

import matplotlib.pyplot as plt
import numpy as np

Preparar as coordenadas

Em seguida, prepararemos as coordenadas para o nosso gráfico de voxels. Criaremos uma grade de pontos 8x8x8 usando a função indices do NumPy.

x, y, z = np.indices((8, 8, 8))

Criar os cubos e a ligação

Agora, criaremos os dois cubos e a ligação entre eles. Faremos isso definindo três arrays booleanos que serão combinados em um único array booleano. Os dois primeiros arrays definem a localização dos cubos, enquanto o terceiro array define a localização da ligação.

cube1 = (x < 3) & (y < 3) & (z < 3)
cube2 = (x >= 5) & (y >= 5) & (z >= 5)
link = abs(x - y) + abs(y - z) + abs(z - x) <= 2

voxelarray = cube1 | cube2 | link

Definir as cores

Agora definiremos as cores para cada objeto no gráfico de voxels. Faremos isso criando um array vazio com a mesma forma do array booleano que criamos no Passo 3 e, em seguida, definindo a cor de cada objeto com base em sua localização.

colors = np.empty(voxelarray.shape, dtype=object)
colors[link] = 'red'
colors[cube1] = 'blue'
colors[cube2] = 'green'

Plotar o array de voxels

Finalmente, podemos usar a função Axes3D.voxels para plotar o array de voxels com as cores especificadas.

ax = plt.figure().add_subplot(projection='3d')
ax.voxels(voxelarray, facecolors=colors, edgecolor='k')

plt.show()

Resumo

Neste laboratório, aprendemos como criar um gráfico de voxel 3D usando a biblioteca Matplotlib em Python. Preparamos as coordenadas para o gráfico, criamos os cubos e o link, definimos as cores para cada objeto e plotamos o array de voxels usando a função Axes3D.voxels. Gráficos de voxel são uma maneira útil de visualizar dados 3D, e o Matplotlib facilita a criação deles.