Criando Gráficos de Voxel 3D em Matplotlib

Beginner

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

Introdução

Neste laboratório, você aprenderá como criar um gráfico de voxel 3D usando coordenadas cilíndricas em Matplotlib. O gráfico demonstrará como usar os parâmetros x, y e z de .Axes3D.voxels para criar um gráfico de voxel 3D.

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 Bibliotecas

O primeiro passo é importar as bibliotecas necessárias para este laboratório. Usaremos matplotlib.pyplot, numpy e matplotlib.colors.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.colors

Definir a Função de Pontos Médios

Em seguida, definimos uma função midpoints para calcular os pontos médios de um array de coordenadas. Esta função será usada posteriormente para calcular os pontos médios de r, theta e z.

def midpoints(x):
    sl = ()
    for i 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

Definir Coordenadas e Valores RGB

Nesta etapa, definimos as coordenadas r, theta e z e atribuímos valores RGB a cada uma.

r, theta, z = np.mgrid[0:1:11j, 0:np.pi*2:25j, -0.5:0.5:11j]
x = r*np.cos(theta)
y = r*np.sin(theta)

rc, thetac, zc = midpoints(r), midpoints(theta), midpoints(z)

## define a wobbly torus about [0.7, *, 0]
sphere = (rc - 0.7)**2 + (zc + 0.2*np.cos(thetac*2))**2 < 0.2**2

## combine the color components
hsv = np.zeros(sphere.shape + (3,))
hsv[..., 0] = thetac / (np.pi*2)
hsv[..., 1] = rc
hsv[..., 2] = zc + 0.5
colors = matplotlib.colors.hsv_to_rgb(hsv)

Criar o Gráfico de Voxel 3D

Agora, criamos o gráfico de voxel 3D usando a função ax.voxels. Passamos x, y, z e sphere como parâmetros. Também adicionamos facecolors e edgecolors usando o array colors que definimos anteriormente.

ax = plt.figure().add_subplot(projection='3d')
ax.voxels(x, y, z, sphere,
          facecolors=colors,
          edgecolors=np.clip(2*colors - 0.5, 0, 1),  ## brighter
          linewidth=0.5)

Exibir o Gráfico

Finalmente, exibimos o gráfico usando a função plt.show().

plt.show()

Resumo

Neste laboratório, você aprendeu como criar um gráfico de voxel 3D usando coordenadas cilíndricas em Matplotlib. Você também aprendeu como definir coordenadas e valores RGB e como criar um gráfico de voxel 3D usando a função ax.voxels.