Créer des graphiques en voxels 3D avec RGB

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à créer un graphique en voxels 3D avec des couleurs RGB à l'aide de Matplotlib. Les graphiques en voxels sont un moyen de représenter des données 3D sur un graphique 2D en utilisant des cubes pour représenter les points de données. Les couleurs RGB seront utilisées pour représenter les différentes valeurs des données.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour la pratique.

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

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

Importation des bibliothèques

Avant de créer le graphique, nous devons importer les bibliothèques requises. Dans ce cas, nous allons utiliser Matplotlib et NumPy.

import matplotlib.pyplot as plt
import numpy as np

Définition des coordonnées et des couleurs

Ensuite, nous devons définir les coordonnées et les couleurs pour le graphique. Dans cet exemple, nous allons utiliser la fonction np.indices pour créer une grille de valeurs 17x17x17 pour les couleurs RGB.

r, g, b = np.indices((17, 17, 17)) / 16.0

Nous définirons également une fonction midpoints pour trouver les points moyens entre les valeurs de la grille. Cela sera utilisé plus tard pour créer la sphère.

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

Création de la sphère

Nous allons maintenant créer une sphère dans le graphique en définissant une condition pour les valeurs RGB qui se trouvent à une certaine distance du centre du graphique.

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

Combinaison des couleurs

Nous allons maintenant combiner les composantes de couleur RGB en un seul tableau de forme (17, 17, 17, 3).

colors = np.zeros(sphere.shape + (3,))
colors[..., 0] = rc
colors[..., 1] = gc
colors[..., 2] = bc

Traçage du graphique en voxels

Enfin, nous pouvons tracer le graphique en voxels en utilisant la fonction ax.voxels. Nous passerons les valeurs RGB, la condition pour la sphère, les couleurs des faces, les couleurs des bords et la largeur de ligne.

ax = plt.figure().add_subplot(projection='3d')
ax.voxels(r, g, b, sphere,
          facecolors=colors,
          edgecolors=np.clip(2*colors - 0.5, 0, 1),  ## plus clair
          linewidth=0.5)
ax.set(xlabel='r', ylabel='g', zlabel='b')
ax.set_aspect('equal')
plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer un graphique en voxels 3D avec des couleurs RGB à l'aide de Matplotlib. Nous avons importé les bibliothèques requises, défini les coordonnées et les couleurs, créé une sphère, combiné les couleurs et tracé le graphique en voxels. Les graphiques en voxels sont un moyen utile de représenter des données 3D sur un graphique 2D et peuvent être personnalisés avec différentes couleurs et formes pour représenter différents types de données.