Tracé de voxels 3D avec Matplotlib

Beginner

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

Introduction

Ce laboratoire vous guidera tout au long du processus de création d'un tracé de voxels 3D à l'aide de la bibliothèque Matplotlib en Python. Les tracés de voxels sont utiles pour visualiser des données 3D d'une manière à la fois claire et esthétiquement agréable. Dans ce laboratoire, nous utiliserons la fonction Axes3D.voxels pour créer un tracé de voxels de deux cubes et d'un lien entre eux.

Conseils pour la machine virtuelle (VM)

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Notebook afin d'accéder à Jupyter Notebook pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes que Jupyter Notebook ait terminé de charger. La validation des opérations ne peut pas être automatisée en raison des limitations de Jupyter Notebook.

Si vous rencontrez des problèmes lors de votre apprentissage, n'hésitez pas à demander de l'aide à Labby. Fournissez des commentaires après la session, et nous résoudrons rapidement le problème pour vous.

Importation des bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires. Dans ce cas, nous utiliserons Matplotlib et NumPy.

import matplotlib.pyplot as plt
import numpy as np

Préparation des coordonnées

Ensuite, nous allons préparer les coordonnées pour notre tracé de voxels. Nous allons créer une grille de points de taille 8x8x8 en utilisant la fonction indices de NumPy.

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

Création des cubes et du lien

Maintenant, nous allons créer les deux cubes et le lien entre eux. Nous allons le faire en définissant trois tableaux booléens qui seront combinés en un seul tableau booléen. Les deux premiers tableaux définissent l'emplacement des cubes, tandis que le troisième tableau définit l'emplacement du lien.

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

Définition des couleurs

Nous allons maintenant définir les couleurs de chaque objet dans le tracé de voxels. Pour ce faire, nous allons créer un tableau vide de la même forme que le tableau booléen créé à l'étape 3, puis définir la couleur de chaque objet en fonction de son emplacement.

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

Traçage du tableau de voxels

Enfin, nous pouvons utiliser la fonction Axes3D.voxels pour tracer le tableau de voxels avec les couleurs spécifiées.

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

plt.show()

Résumé

Dans ce laboratoire (lab), nous avons appris à créer un tracé de voxels 3D en utilisant la bibliothèque Matplotlib en Python. Nous avons préparé les coordonnées pour le tracé, créé les cubes et le lien, défini les couleurs de chaque objet et tracé le tableau de voxels en utilisant la fonction Axes3D.voxels. Les tracés de voxels sont un moyen utile de visualiser des données 3D, et Matplotlib facilite leur création.