Crear gráficos de voxeles tridimensionales con RGB

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá a crear un gráfico de voxeles 3D con colores RGB utilizando Matplotlib. Los gráficos de voxeles son una forma de representar datos 3D en un gráfico 2D utilizando cubos para representar los puntos de datos. Los colores RGB se utilizarán para representar los diferentes valores de los datos.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importando bibliotecas

Antes de crear el gráfico, necesitamos importar las bibliotecas necesarias. En este caso, usaremos Matplotlib y NumPy.

import matplotlib.pyplot as plt
import numpy as np

Definiendo las coordenadas y los colores

A continuación, necesitamos definir las coordenadas y los colores para el gráfico. En este ejemplo, usaremos la función np.indices para crear una cuadrícula de valores de 17x17x17 para los colores RGB.

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

También definiremos una función midpoints para encontrar los puntos medios entre los valores de la cuadrícula. Esto se usará más adelante para crear la 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

Creando la esfera

Ahora crearemos una esfera en el gráfico definiendo una condición para los valores RGB que se encuentran a una cierta distancia del centro del 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 los colores

Ahora combinaremos los componentes de color RGB en una matriz única de forma (17, 17, 17, 3).

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

Graficando el gráfico de voxeles

Finalmente, podemos graficar el gráfico de voxeles usando la función ax.voxels. Pasaremos los valores RGB, la condición para la esfera, los colores de las caras, los colores de los bordes y el ancho de línea.

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

Resumen

En este laboratorio, aprendimos cómo crear un gráfico de voxeles tridimensional con colores RGB usando Matplotlib. Importamos las bibliotecas necesarias, definimos las coordenadas y los colores, creamos una esfera, combinamos los colores y graficamos el gráfico de voxeles. Los gráficos de voxeles son una forma útil de representar datos tridimensionales en un gráfico bidimensional y se pueden personalizar con diferentes colores y formas para representar diferentes tipos de datos.