Saltar al contenido

Cómo tener contenedores logarítmicos en un histograma de Python

Posterior a investigar con expertos en el tema, programadores de varias áreas y profesores dimos con la solución al problema y la compartimos en este post.

Solución:

use logspace() para crear una secuencia geométrica y pásela al parámetro bins. Y establezca la escala de xaxis en escala logarítmica.

import pylab as pl
import numpy as np

data = np.random.normal(size=10000)
pl.hist(data, bins=np.logspace(np.log10(0.1),np.log10(1.0), 50))
pl.gca().set_xscale("log")
pl.show()

ingrese la descripción de la imagen aquí

La forma más directa es simplemente calcular el log10 de los límites, calcular contenedores espaciados linealmente y luego volver a convertirlos elevando a la potencia de 10, como se muestra a continuación:

import pylab as pl
import numpy as np

data = np.random.normal(size=10000)

MIN, MAX = .01, 10.0

pl.figure()
pl.hist(data, bins = 10 ** np.linspace(np.log10(MIN), np.log10(MAX), 50))
pl.gca().set_xscale("log")
pl.show()

contenedores espaciados log10

El siguiente código indica cómo puede utilizar bins='auto' con la escala logarítmica.

import numpy as np
import matplotlib.pyplot as plt

data = 10**np.random.normal(size=500)

_, bins = np.histogram(np.log10(data + 1), bins='auto')
plt.hist(data, bins=10**bins);
plt.gca().set_xscale("log")

cuadro

Si aceptas, eres capaz de dejar una reseña acerca de qué le añadirías a este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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