Trazo de superficie tridimensional con Matplotlib

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 es un tutorial paso a paso sobre cómo trazar una superficie tridimensional utilizando Matplotlib en Python. La superficie tridimensional está coloreada con la paleta de colores coolwarm y se hace opaca utilizando "antialiased=False". El tutorial también demuestra el uso de .LinearLocator y el formato personalizado para las etiquetas de los valores de la z axis.

Consejos sobre la VM

Una vez finalizado el arranque de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Notebook 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 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 sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar bibliotecas

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cm
from matplotlib.ticker import LinearLocator

Importamos las bibliotecas necesarias para el tutorial. Matplotlib es una biblioteca de trazado para Python que proporciona una interfaz similar a MATLAB. Numpy es un paquete fundamental para el cálculo científico en Python.

Crear figura y ejes

fig, ax = plt.subplots(subplot_kw={"projection": "3d"})

Creamos una figura y ejes con el parámetro subplot_kw establecido en "proyección": "3d". Esto creará una proyección tridimensional de la gráfica.

Crear datos

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

Creamos los datos para la gráfica. Creamos los valores de X e Y como arrays con valores espaciados uniformemente de -5 a 5 en incrementos de 0.25. Luego creamos una malla (meshgrid) de los valores de X e Y utilizando np.meshgrid(). Utilizamos la malla para calcular los valores de R, que es la distancia desde el origen. Luego calculamos los valores de Z utilizando la función sin() de R.

Trazar la superficie

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

Tracemos la superficie utilizando la función plot_surface(). Pasamos los valores de X, Y y Z, así como el parámetro cmap establecido en cm.coolwarm para colorear la superficie con la paleta de colores coolwarm. También establecemos linewidth = 0 para eliminar el wireframe y antialiased = False para hacer la superficie opaca.

Personalizar el eje Z

ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
## A StrMethodFormatter is used automatically
ax.zaxis.set_major_formatter('{x:.02f}')

Personalizamos el eje z utilizando la función set_zlim() para establecer los límites del eje z de -1.01 a 1.01. Luego utilizamos la función set_major_locator() para establecer el número de marcas en el eje z en 10 utilizando LinearLocator(10). Finalmente, utilizamos la función set_major_formatter() para formatear las etiquetas de las marcas del eje z utilizando un StrMethodFormatter.

Agregar una barra de colores

fig.colorbar(surf, shrink=0.5, aspect=5)

Agregamos una barra de colores a la gráfica utilizando la función colorbar(). Pasamos el objeto surf y establecemos shrink = 0.5 y aspect = 5 para ajustar el tamaño de la barra de colores.

Resumen

Este tutorial demostró cómo trazar una superficie tridimensional utilizando Matplotlib en Python. Creamos una figura y ejes, creamos los datos, tracamos la superficie, personalizamos el eje z y agregamos una barra de colores. Matplotlib es una herramienta poderosa para crear visualizaciones en Python.