Introdução
Neste laboratório, você aprenderá como criar um gráfico de voxel 3D com cores RGB usando Matplotlib. Gráficos de voxel são uma forma de representar dados 3D em um gráfico 2D, usando cubos para representar os pontos de dados. As cores RGB serão usadas para representar os diferentes valores dos dados.
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ê.
Importando Bibliotecas
Antes de criar o gráfico, precisamos importar as bibliotecas necessárias. Neste caso, usaremos Matplotlib e NumPy.
import matplotlib.pyplot as plt
import numpy as np
Definindo as Coordenadas e Cores
Em seguida, precisamos definir as coordenadas e as cores para o gráfico. Neste exemplo, usaremos a função np.indices para criar uma grade 17x17x17 de valores para as cores RGB.
r, g, b = np.indices((17, 17, 17)) / 16.0
Também definiremos uma função midpoints para encontrar os pontos médios entre os valores na grade. Isso será usado posteriormente para criar a esfera.
def midpoints(x):
sl = ()
for _ in range(x.ndim):
x = (x[sl + np.index_exp[:-1]] + x[sl + np.index_exp[1:]]) / 2.0
sl += np.index_exp[:]
return x
Criando a Esfera
Agora criaremos uma esfera no gráfico definindo uma condição para os valores RGB que estão dentro de uma certa distância do centro do gráfico.
rc = midpoints(r)
gc = midpoints(g)
bc = midpoints(b)
sphere = (rc - 0.5)**2 + (gc - 0.5)**2 + (bc - 0.5)**2 < 0.5**2
Combinando as Cores
Agora combinaremos os componentes de cor RGB em um único array com a forma (17, 17, 17, 3).
colors = np.zeros(sphere.shape + (3,))
colors[..., 0] = rc
colors[..., 1] = gc
colors[..., 2] = bc
Plotando o Gráfico de Voxel (Voxel Plot)
Finalmente, podemos plotar o gráfico de voxel usando a função ax.voxels. Passaremos os valores RGB, a condição para a esfera, as cores das faces, as cores das bordas e a espessura da linha.
ax = plt.figure().add_subplot(projection='3d')
ax.voxels(r, g, b, sphere,
facecolors=colors,
edgecolors=np.clip(2*colors - 0.5, 0, 1), ## brighter
linewidth=0.5)
ax.set(xlabel='r', ylabel='g', zlabel='b')
ax.set_aspect('equal')
plt.show()
Resumo
Neste laboratório, aprendemos como criar um gráfico de voxel 3D com cores RGB usando Matplotlib. Importamos as bibliotecas necessárias, definimos as coordenadas e cores, criamos uma esfera, combinamos as cores e plotamos o gráfico de voxel. Gráficos de voxel são uma maneira útil de representar dados 3D em um gráfico 2D e podem ser personalizados com diferentes cores e formas para representar diferentes tipos de dados.