Soweit ich weiß, bezieht sich die Option Log = True in der Histogrammfunktion nur auf die y-Achse.
P.hist(d,bins=50,log=True,alpha=0.5,color='b',histtype='step')
Ich muss die Behälter in log10 gleichmäßig verteilen. Gibt es etwas, das das kann?
python
numpy
matplotlib
histogram
Brian
quelle
quelle
Antworten:
Verwenden Sie logspace (), um eine geometrische Sequenz zu erstellen und an den Parameter bins zu übergeben. Stellen Sie die xaxis-Skala auf logarithmische Skalierung ein.
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()
quelle
np.logspace(0.1,1.0,...)
ein Bereich von10**0.1
bis10**1.0
, nicht von0.1
bis erstellt wird1.0
np.logspace(np.log10(0.1),np.log10(1.0),50)
Der direkteste Weg besteht darin, nur das log10 der Grenzwerte zu berechnen, linear beabstandete Bins zu berechnen und dann durch Erhöhen auf die Potenz 10 wie folgt zurückzurechnen:
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()
quelle
Der folgende Code gibt an, wie Sie
bins='auto'
die Protokollskala verwenden können.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")
quelle
Zusätzlich zu den Angaben funktioniert dies auch für Pandas-Datenrahmen:
some_column_hist = dataframe['some_column'].plot(bins=np.logspace(-2, np.log10(max_value), 100), kind='hist', loglog=True, xlim=(0,max_value))
Ich würde darauf hinweisen, dass es ein Problem mit der Normalisierung der Behälter geben könnte. Jeder Behälter ist größer als der vorherige und muss daher durch seine Größe geteilt werden, um die Frequenzen vor dem Plotten zu normalisieren, und es scheint, dass weder meine Lösung noch die Lösung von HYRY dies berücksichtigen.
Quelle: https://arxiv.org/pdf/cond-mat/0412004.pdf
quelle