Cree un diagrama de pseudocolor de una cuadrícula triangular no estructurada en Python usando Matplotlib

Matplotlib es un módulo de Python que se puede utilizar para la visualización de datos; y analice los datos gráficamente en forma de gráfico circular, histograma, gráfico de barras y muchos más. También tiene la capacidad de generar marcos similares a MATLAB.

Cuadrícula triangular no estructurada

Una cuadrícula triangular no estructurada contiene n_puntos puntos y n_tri triángulos que pueden ser especificados por el usuario o generados automáticamente usando una triangulación de Delaunay .

Sintaxis: matplotlib.tri.Triangulation(x, y, triángulos=Ninguno, máscara=Ninguno)

Parámetros:

  • x, y : especifica las coordenadas de los puntos de la cuadrícula.
  • triángulos: [opcional] tipo de array entera de forma (n_tri, 3)
  • mask : [opcional] especifica qué triángulos están enmascarados.

Creación de un gráfico de pseudocolor de una cuadrícula triangular no estructurada

Podemos trazar una cuadrícula triangular no estructurada de pseudocolor con la función tripcolor() de la biblioteca pyplot.

Sintaxis: matplotlib.pyplot.tripcolor(*args, cmap=Ninguno, alpha=1.0, edgecolors=Ninguno, facecolors=Ninguno, shading=’flat’, norm=Ninguno, vmax=Ninguno, vmin=Ninguno, **kwargs)

Parámetros:

  1. cmap: puede ser Ninguno o matplotlib tiene una serie de mapas de colores integrados accesibles a través de matplotlib.cm.get_cmap
  2. alfa: Puede ser Ninguno o un valor alfa entre 0 y 1.
  3. colores de borde:
    • Si es Ninguno, los bordes no serán visibles.
    • ‘cara’ representa el mismo color que las caras.
    • la secuencia de colores establecerá un color.
  4. facecolors: menciona las tipografías
  5. sombreado: puede ser ‘plano’ o ‘gouraud’
  6. norma : si es Ninguno, el valor predeterminado es normalizar().
  7. vimax : puede ser Ninguno o el valor escalar.
  8. vimin: puede ser Ninguno o el valor escalar. ( vimax y vimin se utilizan junto con la normalización de datos )

Ejemplo 1 :

import matplotlib.pyplot as plt
import matplotlib.tri as tri
import numpy as np
import math
  
# Creating a Triangulation without 
# specifying the triangles results in the
# Delaunay triangulation of the points.
  
# First create the x and y coordinates of the points.
angles = 36
n_radii = 8
min_radius = 0.25
radii = np.linspace(min_radius, 0.95, n_radii)
  
angles1 = np.linspace(0, 2 * math.pi, angles, endpoint = False)
angles1 = np.repeat(angles1[..., np.newaxis], n_radii, axis = 1)
angles1[:, 1::2] += math.pi / angles
  
x = (radii * np.cos(angles1)).flatten()
y = (radii * np.sin(angles1)).flatten()
z = (np.cos(radii)*np.cos(angles1 * 3.0)).flatten()
  
# Create  Delaunay triangulation.
triang = tri.Triangulation(x, y)
  
# Mask off unwanted triangles.
x1 = x[triang.triangles].mean(axis = 1)
y1 = y[triang.triangles].mean(axis = 1)
mask = np.where(x1 * x1 + y1 * y1 < min_radius * min_radius, 1, 0)
triang.set_mask(mask)
  
# Illustrate shading.
plt.figure()
plt.gca().set_aspect('equal')
  
tri = plt.tripcolor(triang, z,
                    shading ='gouraud',
                    cmap = plt.cm.rainbow,
                    alpha = 0.5,
                    edgecolors ='k')
  
plt.title('tripcolor_example1')
plt.colorbar(tri)

Producción :

Ejemplo 2:

xy = np.asarray([
    [-0.101, 0.872], [-0.080, 0.883], [-0.069, 0.888], [-0.054, 0.890],
    [-0.045, 0.897], [-0.057, 0.895], [-0.073, 0.900], [-0.087, 0.898],
    [-0.090, 0.904], [-0.069, 0.907], [-0.069, 0.921], [-0.080, 0.919],
    [-0.073, 0.928], [-0.052, 0.930], [-0.048, 0.942], [-0.062, 0.949],
    [-0.054, 0.958], [-0.069, 0.954], [-0.087, 0.952], [-0.087, 0.959],
    [-0.080, 0.966], [-0.085, 0.973], [-0.087, 0.965], [-0.097, 0.965],
    [-0.097, 0.975], [-0.092, 0.984], [-0.101, 0.980], [-0.108, 0.980],
    [-0.104, 0.987], [-0.102, 0.993], [-0.115, 1.001], [-0.099, 0.996],
    [-0.101, 1.007], [-0.090, 1.010], [-0.087, 1.021], [-0.069, 1.021],
    [-0.052, 1.022], [-0.052, 1.017], [-0.069, 1.010], [-0.064, 1.005],
    [-0.048, 1.005], [-0.031, 1.005], [-0.031, 0.996], [-0.040, 0.987],
    [-0.045, 0.980], [-0.052, 0.975], [-0.040, 0.973], [-0.026, 0.968],
    [-0.020, 0.954], [-0.006, 0.947], [ 0.003, 0.935], [ 0.006, 0.926],
    [ 0.005, 0.921], [ 0.022, 0.923], [ 0.033, 0.912], [ 0.029, 0.905],
    [ 0.017, 0.900], [ 0.012, 0.895], [ 0.027, 0.893], [ 0.019, 0.886],
    [ 0.001, 0.883], [-0.012, 0.884], [-0.029, 0.883], [-0.038, 0.879],
    [-0.057, 0.881], [-0.062, 0.876], [-0.078, 0.876], [-0.087, 0.872],
    [-0.030, 0.907], [-0.007, 0.905], [-0.057, 0.916], [-0.025, 0.933],
    [-0.077, 0.990], [-0.059, 0.993]])
x, y = np.rad2deg(xy).T
  
triangles = np.asarray([
    [67, 66,  1], [65,  2, 66], [ 1, 66,  2], [64,  2, 65], [63,  3, 64],
    [60, 59, 57], [ 2, 64,  3], [ 3, 63,  4], [ 0, 67,  1], [62,  4, 63],
    [57, 59, 56], [59, 58, 56], [61, 60, 69], [57, 69, 60], [ 4, 62, 68],
    [ 6,  5,  9], [61, 68, 62], [69, 68, 61], [ 9,  5, 70], [ 6,  8,  7],
    [ 4, 70,  5], [ 8,  6,  9], [56, 69, 57], [69, 56, 52], [70, 10,  9],
    [54, 53, 55], [56, 55, 53], [68, 70,  4], [52, 56, 53], [11, 10, 12],
    [69, 71, 68], [68, 13, 70], [10, 70, 13], [51, 50, 52], [13, 68, 71],
    [52, 71, 69], [12, 10, 13], [71, 52, 50], [71, 14, 13], [50, 49, 71],
    [49, 48, 71], [14, 16, 15], [14, 71, 48], [17, 19, 18], [17, 20, 19],
    [48, 16, 14], [48, 47, 16], [47, 46, 16], [16, 46, 45], [23, 22, 24],
    [21, 24, 22], [17, 16, 45], [20, 17, 45], [21, 25, 24], [27, 26, 28],
    [20, 72, 21], [25, 21, 72], [45, 72, 20], [25, 28, 26], [44, 73, 45],
    [72, 45, 73], [28, 25, 29], [29, 25, 31], [43, 73, 44], [73, 43, 40],
    [72, 73, 39], [72, 31, 25], [42, 40, 43], [31, 30, 29], [39, 73, 40],
    [42, 41, 40], [72, 33, 31], [32, 31, 33], [39, 38, 72], [33, 72, 38],
    [33, 38, 34], [37, 35, 38], [34, 38, 35], [35, 37, 36]])
  
xmid = x[triangles].mean(axis = 1)
ymid = y[triangles].mean(axis = 1)
x0 = -8
y0 = 70
zfaces = np.exp(-0.01 * ((xmid - x0) * (xmid - x0) + (ymid - y0) * (ymid - y0)))
                          
fig3, ax3 = plt.subplots()
ax3.set_aspect('equal')
  
tpc = ax3.tripcolor(x, y, triangles,
                    facecolors = zfaces,
                    cmap ='Greys', 
                    edgecolors ='k',
                    shading = 'flat',
                    alpha = 0.5)
  
ax3.set_title('tripcolor_example2')
ax3.set_xlabel('Longitude')
ax3.set_ylabel('Latitude')
  
fig3.colorbar(tpc)

Producción :

Publicación traducida automáticamente

Artículo escrito por soniyanagaraj30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *