Visualización de malla triangular no estructurada

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, 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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} matplotlib/figures_axes -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} python/booleans -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} python/lists -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} python/tuples -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} python/importing_modules -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} python/numerical_computing -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} python/data_visualization -.-> lab-49005{{"Visualización de malla triangular no estructurada"}} end

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.