Visualização de Grade Triangular Não Estruturada

Beginner

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

Introdução

Neste laboratório, criaremos um gráfico de contorno 3D triangular usando Matplotlib. Este gráfico é útil para visualizar grades triangulares não estruturadas. Usaremos os mesmos dados do segundo gráfico de trisurf3d_2.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar as bibliotecas necessárias

Começaremos importando as bibliotecas necessárias para este laboratório, que incluem Matplotlib e NumPy.

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

Definir variáveis

Definiremos as variáveis que usaremos para criar nosso gráfico. Essas variáveis incluem o número de ângulos, o número de raios e o raio mínimo.

n_angles = 48
n_radii = 8
min_radius = 0.25

Criar a malha e calcular x, y, z

Criaremos a malha em coordenadas polares e calcularemos x, y, z usando as variáveis 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()

Criar triangulação personalizada

Criaremos uma triangulação personalizada usando as coordenadas x e y.

triang = tri.Triangulation(x, y)

Mascar triângulos indesejados

Mascaremos os triângulos indesejados usando a média das coordenadas x e y.

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

Criar gráfico de contorno 3D

Criaremos um gráfico de contorno 3D usando a triangulação criada e as coordenadas z. Também personalizaremos o ângulo de visualização para que seja mais fácil entender o gráfico.

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

Resumo

Neste laboratório, criamos um gráfico de contorno 3D triangular usando Matplotlib. Passamos pelos passos de importar as bibliotecas necessárias, definir variáveis, criar uma malha (mesh), criar uma triangulação personalizada, mascarar os triângulos indesejados e criar o gráfico de contorno 3D.