Visualisation de grille triangulaire non structurée

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons créer un tracé de contour 3D triangulaire à l'aide de Matplotlib. Ce tracé est utile pour visualiser des maillages triangulaires non structurés. Nous utiliserons les mêmes données que dans le second tracé de trisurf3d_2.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet d'adresses pour accéder au carnet Jupyter pour pratiquer.

Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) 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{{"Visualisation de grille triangulaire non structurée"}} matplotlib/figures_axes -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} python/booleans -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} python/lists -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} python/tuples -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} python/importing_modules -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} python/numerical_computing -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} python/data_visualization -.-> lab-49005{{"Visualisation de grille triangulaire non structurée"}} end

Importez les bibliothèques nécessaires

Nous allons commencer par importer les bibliothèques nécessaires pour ce laboratoire, qui incluent Matplotlib et NumPy.

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

Définir les variables

Nous allons définir les variables que nous utiliserons pour créer notre tracé. Ces variables incluent le nombre d'angles, le nombre de rayons et le rayon minimum.

n_angles = 48
n_radii = 8
min_radius = 0.25

Créer un maillage et calculer x, y, z

Nous allons créer le maillage dans les coordonnées polaires et calculer x, y, z en utilisant les variables définies.

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()

Créer une triangulation personnalisée

Nous allons créer une triangulation personnalisée en utilisant les coordonnées x et y.

triang = tri.Triangulation(x, y)

Masquer les triangles indésirables

Nous allons masquer les triangles indésirables en utilisant la moyenne des coordonnées x et y.

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

Créer un tracé de courbe en 3D

Nous allons créer un tracé de courbe en 3D en utilisant la triangulation créée et les coordonnées z. Nous allons également personnaliser l'angle de vue pour faciliter la compréhension du tracé.

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

Sommaire

Dans ce laboratoire, nous avons créé un tracé de courbe en 3D triangulaire à l'aide de Matplotlib. Nous avons parcouru les étapes d'importation des bibliothèques nécessaires, de définition de variables, de création d'un maillage, de création d'une triangulation personnalisée, de masquage des triangles indésirables et de création du tracé de courbe en 3D.