web-dev-qa-db-ja.com

numpyヒストグラム出力からのMatplotlibヒストグラム

より大きなデータセットのサブセットの束に対してnumpy.histogram()を実行しました。計算とグラフィック出力を分離したいので、データ自体に対してmatplotlib.pyplot.hist()を呼び出さないようにします。

原則として、これらの関数は両方とも同じ入力、つまりビニングの前の生データ自体を取ります。 numpyバージョンは_nbin+1_ビンエッジとnbin周波数を返すだけですが、matplotlibバージョンはプロット自体を作成します。

それで、計算をやり直すことなく(そして入力を保存する必要なく)numpy.histogram()出力自体からヒストグラムを生成する簡単な方法はありますか?

明確にするために、numpy.histogram()出力はnbinビンの_nbin+1_ビンエッジのリストです。これらを入力として受け取るmatplotlibルーチンはありません。

13
Andrew Jaffe

numpy.histogramを使用して、plt.barの出力をプロットできます。

import matplotlib.pyplot as plt
import numpy as np; np.random.seed(1)

a = np.random.rayleigh(scale=3,size=100)
bins = np.arange(10)

frq, edges = np.histogram(a, bins)

fig, ax = plt.subplots()
ax.bar(edges[:-1], frq, width=np.diff(edges), ec="k", align="Edge")

plt.show()

enter image description here