ヒストグラム関数のLog = Trueオプションは、y軸のみを参照しています。Pythonヒストグラムに対数ビンを入れる方法
P.hist(d,bins=50,log=True,alpha=0.5,color='b',histtype='step')
log10でビンを等間隔にする必要があります。これを行うことができるものはありますか?
ヒストグラム関数のLog = Trueオプションは、y軸のみを参照しています。Pythonヒストグラムに対数ビンを入れる方法
P.hist(d,bins=50,log=True,alpha=0.5,color='b',histtype='step')
log10でビンを等間隔にする必要があります。これを行うことができるものはありますか?
ジオメトリシーケンスを作成し、binsパラメータに渡すためにlogspace()を使用します。また、xaxisのスケールをログスケールに設定します。
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()
'np.logspace(0.1,1.0、...)'は '0.1 ** 'から' 10 ** 1.0'までの範囲を '10 ** 0.1'から' 0.1'から '1.0'に変更しないことに注意してください。 –
は' np .logspace(np.log10(0.1)、np.log10(1.0)、50) ' – OrangeSherbet
最も直接的な方法は、単に、制限のlog10のを計算する直線離間ビンを計算し、その後、以下のように、10のパワーを上げることにより、バック変換することである。
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()
としてうまく機能データフレームパンダでこれを実行し、述べたものに加えて
log histogram from .01 to 10 http://i57.tinypic.com/f1z8uu.png
:
some_column_hist = dataframe['some_column'].plot(bins=np.logspace(-2, np.log10(max_value), 100), kind='hist', loglog=True, xlim=(0,max_value))
ビンを正規化する際に問題が発生する可能性があるので注意してください。各ビンは前のビンよりも大きいので、プロットする前に周波数を正規化するためにサイズで分けなければなりません。私の解決策も、HYRYの解決策もこれを説明していないようです。
出典:あなたがそうするならばhttps://arxiv.org/pdf/cond-mat/0412004.pdf
あなたはビン幅によって各ビンのカウントを分割する必要があります! – Peaceful