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:
- autoscale(self, A): Se utiliza para establecer la Vmax y Vmin de A.
- autoscale_None(self, A): se utiliza para escalar automáticamente el vmax vmin que tiene Ninguno como valor.
- 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 :
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:
Publicación traducida automáticamente
Artículo escrito por RajuKumar19 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA