Visualización de malla triangular no estructurada

Beginner

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

Introducción

En este laboratorio, crearemos un gráfico de contorno 3D triangular utilizando Matplotlib. Este gráfico es útil para visualizar mallas triangulares no estructuradas. Utilizaremos los mismos datos que en la segunda gráfica de trisurf3d_2.

Consejos sobre la VM

Una vez que se haya iniciado 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 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 las bibliotecas necesarias

Comenzaremos importando las bibliotecas necesarias para este laboratorio, que incluyen Matplotlib y NumPy.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.tri as tri

Definir variables

Definiremos las variables que utilizaremos para crear nuestro gráfico. Estas variables incluyen el número de ángulos, el número de radios y el radio mínimo.

n_angles = 48
n_radii = 8
min_radius = 0.25

Crear malla y calcular x, y, z

Crearemos la malla en coordenadas polares y calcularemos x, y, z utilizando las variables definidas.

radii = np.linspace(min_radius, 0.95, n_radii)
angles = np.linspace(0, 2*np.pi, n_angles, endpoint=False)
angles = np.repeat(angles[..., np.newaxis], n_radii, axis=1)
angles[:, 1::2] += np.pi/n_angles

x = (radii*np.cos(angles)).flatten()
y = (radii*np.sin(angles)).flatten()
z = (np.cos(radii)*np.cos(3*angles)).flatten()

Crear una triangulación personalizada

Crearemos una triangulación personalizada utilizando las coordenadas x e y.

triang = tri.Triangulation(x, y)

Ocultar triángulos no deseados

Ocultaremos los triángulos no deseados utilizando la media de las coordenadas x e y.

triang.set_mask(np.hypot(x[triang.triangles].mean(axis=1),
                         y[triang.triangles].mean(axis=1))
                < min_radius)

Crear un gráfico de contorno 3D

Crearemos un gráfico de contorno 3D utilizando la triangulación creada y las coordenadas z. También personalizaremos el ángulo de vista para que sea más fácil de entender el gráfico.

ax = plt.figure().add_subplot(projection='3d')
ax.tricontour(triang, z, cmap=plt.cm.CMRmap)
ax.view_init(elev=45.)
plt.show()

Resumen

En este laboratorio, creamos un gráfico de contorno 3D triangular utilizando Matplotlib. Pasamos por los pasos de importar las bibliotecas necesarias, definir variables, crear una malla, crear una triangulación personalizada, ocultar triángulos no deseados y crear el gráfico de contorno 3D.