Gráficos 2D y 3D con Matplotlib

Beginner

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

Introducción

Esta práctica te guiará a través de la creación de una figura que contiene tanto una trama 2D como una trama 3D utilizando Matplotlib. La trama 2D mostrará una oscilación amortiguada, mientras que la trama 3D mostrará una onda sinusoidal.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haz 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 tengas 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 tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.

Importar bibliotecas

En este paso, importaremos las bibliotecas necesarias para esta práctica. Usaremos Matplotlib para la representación gráfica, NumPy para crear matrices y mpl_toolkits para la representación en 3D.

import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

Definir funciones

En este paso, definiremos una función que genere una oscilación amortiguada.

def f(t):
    return np.cos(2*np.pi*t) * np.exp(-t)

Crear figura

En este paso, crearemos una figura con dos subtramas. La primera subtrama será una trama 2D y la segunda subtrama será una trama 3D.

fig = plt.figure(figsize=plt.figaspect(2.))
fig.suptitle('A Tale of 2 Subplots')

Crear trama 2D

En este paso, crearemos una trama 2D de una oscilación amortiguada.

ax1 = fig.add_subplot(2, 1, 1)
t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)
t3 = np.arange(0.0, 2.0, 0.01)

ax1.plot(t1, f(t1), 'bo',
         t2, f(t2), 'k--', markerfacecolor='green')
ax1.grid(True)
ax1.set_ylabel('Oscilación amortiguada')

Crear trama 3D

En este paso, crearemos una trama 3D de una onda sinusoidal.

ax2 = fig.add_subplot(2, 1, 2, projection='3d')
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)

surf = ax2.plot_surface(X, Y, Z, rstride=1, cstride=1,
                        linewidth=0, antialiased=False)
ax2.set_zlim(-1, 1)

Mostrar trama

En este paso, mostraremos la figura.

plt.show()

Resumen

En este laboratorio, creamos una figura con una trama 2D y otra 3D utilizando Matplotlib. La trama 2D mostró una oscilación amortiguada, mientras que la trama 3D mostró una onda sinusoidal. Utilizamos NumPy para crear arrays y mpl_toolkits para la representación 3D.