Matplotlib.colors.SymLogNorm clase en Python

Matplotlib es una increíble biblioteca de visualización en Python para gráficos 2D de arrays. Matplotlib es una biblioteca de visualización de datos multiplataforma basada en arrays NumPy y diseñada para funcionar con la pila SciPy más amplia.

Nota: Para obtener más información, consulte Python Matplotlib: descripción general

matplotlib.colors.SysLogNorm

La clase matplotlib.colors.SysLogNorm pertenece al módulo matplotlib.colors . El módulo matplotlib.colors se usa para convertir argumentos de color o números a RGBA o RGB. Este módulo se usa para asignar números a colores o conversión de especificación de color en una array de colores 1-D también conocida como mapa de colores.

La clase matplotlib.colors.SymLogNorm se usa para la escala logarítmica simétrica en dirección positiva y negativa desde el origen. Como el valor cercano al rango de cero tiende hacia el infinito, surgió la necesidad de tener un rango lineal alrededor de cero. El rango bajo el cual la gráfica es lineal se llama linthresh. El rango lineal (-linthresh a +linthresh) se estira en relación con el rango logarítmico con la ayuda de linscale. El número de décadas a usar para cada mitad del rango lineal es su valor. Por ejemplo, si linscale==1.0 (este también es el valor predeterminado), el espacio cubierto por las mitades positiva y negativa del rango lineal es equivalente a una década en el rango que es de naturaleza logarítmica.

Métodos de la clase:

  1. autoscale(self, A): Se utiliza para establecer la Vmax y Vmin de A.
  2. autoscale_None(self, A): se utiliza para escalar automáticamente el vmax vmin que tiene Ninguno como valor.
  3. inverse(self, value): devuelve el inverso logarítmico del valor.

Ejemplo 1:

Python3

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
  
  
# SymLogNorm: two humps, one 
# negative and one positive
N = 100
A, B = np.mgrid[-3:3:complex(0, N), -2:2:complex(0, N)]
C1 = np.exp(-A**2 - B**2)
C2 = np.exp(-(A - 1)**2 - (B - 1)**2)
C = (C1 - C2) * 2
  
figure, axes = plt.subplots(2, 1)
  
pcm = axes[0].pcolormesh(A, B, C,
                       norm = colors.SymLogNorm(linthresh = 0.03,
                                                linscale = 0.03,
                                                vmin =-1.0, 
                                                vmax = 1.0),
                       cmap ='RdBu_r')
  
figure.colorbar(pcm, ax = axes[0], extend ='both')
  
pcm = axes[1].pcolormesh(A, B, C, 
                         cmap ='RdBu_r',
                         vmin =-np.max(C))
  
figure.colorbar(pcm, ax = axes[1],
                extend ='both')
  
plt.show()

Salida :
SymLogNorm

Ejemplo 2:

Python3

import numpy as np
import matplotlib.pyplot as plt
from matplotlib import colors, ticker
  
# helper function to 
# show syslognorm in action
def symlog(arr, vmin = None, vmax = None,
           logthresh = 5, logstep = 1,
           linscale = 1, **kwargs):
      
    vmin = arr.min() if vmin is None else vmin
    vmax = arr.max() if vmax is None else vmax
    image = plt.imshow(arr,
                       vmin = float(vmin),
                       vmax = float(vmax),
                       norm = colors.SymLogNorm(10**-logthresh,
                                                linscale = linscale),
                       **kwargs)
  
    maxlog = int(np.ceil(np.log10(vmax)))
    minlog = int(np.ceil(np.log10(-vmin)))
  
    # generate logarithmic ticks
    tick_locations =([-(10**x) for x in range(-logthresh,
                                             minlog + 1,
                                             logstep)][::-1]
                    +[0.0]
                    +[(10**x) for x in range(-logthresh,
                                             maxlog + 1,
                                             logstep)] )
  
    cb = plt.colorbar(ticks = tick_locations, 
                    format = ticker.LogFormatter())
      
    return image, cb
  
data = np.arange(4).reshape(-1, 1)+np.arange(4).reshape(1, -1)
data = 10**(data / 2.)
data2 = data - data[::-1, ::-1]
plt.figure(figsize =(4, 3))  
image, cb = symlog(data2, interpolation ="None",
                   cmap ="gray", logthresh = 0)
plt.show()

Producción:
SymLogNorm

Publicación traducida automáticamente

Artículo escrito por RajuKumar19 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 *