Tipos de proyección de gráficas tridimensionales

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

Esta práctica demuestra las diferentes proyecciones de cámara para gráficos 3D, y los efectos de cambiar la distancia focal para una proyección perspectiva utilizando Python Matplotlib.

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.

En ocasiones, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las 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 su retroalimentación después de la sesión y resolveremos rápidamente el problema para usted.

Importar bibliotecas

En primer lugar, importe las bibliotecas necesarias, incluyendo Matplotlib y Axes3D de mpl_toolkits.mplot3d.

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

Obtener datos

Obtenga los datos de prueba para el gráfico 3D.

X, Y, Z = axes3d.get_test_data(0.05)

Crear una figura con subgráficos

Crea una figura con tres subgráficos utilizando plt.subplots.

fig, axs = plt.subplots(1, 3, subplot_kw={'projection': '3d'})

Graficar los datos

Grafica los datos en cada uno de los tres subgráficos utilizando plot_wireframe.

for ax in axs:
    ax.plot_wireframe(X, Y, Z, rstride=10, cstride=10)

Establecer la proyección ortográfica

Establece el primer subgráfico para que utilice una proyección ortográfica con un FOV de 0 grados y una focal_length de infinito.

axs[0].set_proj_type('ortho')  ## FOV = 0 deg
axs[0].set_title("'ortho'\nfocal_length = ∞", fontsize=10)

Establecer las proyecciones perspectivas

Establece el segundo subgráfico para que utilice una proyección perspectiva con el FOV predeterminado de 90 grados y una focal_length de 1.

axs[1].set_proj_type('persp')  ## FOV = 90 deg
axs[1].set_title("'persp'\nfocal_length = 1 (default)", fontsize=10)

Establece el tercer subgráfico para que utilice una proyección perspectiva con un FOV de 157.4 grados y una focal_length de 0.2.

axs[2].set_proj_type('persp', focal_length=0.2)  ## FOV = 157.4 deg
axs[2].set_title("'persp'\nfocal_length = 0.2", fontsize=10)

Mostrar la gráfica

Muestra la gráfica utilizando plt.show().

plt.show()

Resumen

Esta práctica demostró cómo crear una gráfica tridimensional utilizando Python Matplotlib y cómo cambiar el tipo de proyección y la distancia focal de la gráfica. La proyección ortográfica aplana la imagen mientras que la proyección perspectiva agiganta la perspectiva y le da a la imagen una profundidad más aparente. La distancia focal predeterminada de 1 corresponde a un Campo Visual (FOV) de 90 grados.