16

関数をmatplotlib使用してヒストグラムを作成しました。ビンの高さ ( ) のポイズン エラー平方根をバーpyplot.hist()に追加したいと思います。sqrt(binheight)これどうやってするの?

.hist()インクルードの戻りタプルreturn[2]-> 1 つの Patch オブジェクトのリスト。を介して作成されたバーにエラーを追加できることがわかりましたpyplot.bar()

4

2 に答える 2

23

確かにあなたはバーを使用する必要があります。を使用して出力histし、棒としてプロットすることができます。

import numpy as np
import pylab as plt

data       = np.array(np.random.rand(1000))
y,binEdges = np.histogram(data,bins=10)
bincenters = 0.5*(binEdges[1:]+binEdges[:-1])
menStd     = np.sqrt(y)
width      = 0.05
plt.bar(bincenters, y, width=width, color='r', yerr=menStd)
plt.show()

ここに画像の説明を入力してください

于 2012-08-02T10:37:43.230 に答える
8

代替ソリューション

キーワード引数pyplot.errorbar()と を組み合わせて使用​​することもできます。drawstyle以下のコードは、ステップ ライン プロットを使用してヒストグラムのプロットを作成します。各ビンの中央にマーカーがあり、各ビンには必要なポアソン エラーバーがあります。

import numpy
import pyplot

x = numpy.random.rand(1000)
y, bin_edges = numpy.histogram(x, bins=10)
bin_centers = 0.5*(bin_edges[1:] + bin_edges[:-1])

pyplot.errorbar(
    bin_centers,
    y,
    yerr = y**0.5,
    marker = '.',
    drawstyle = 'steps-mid-'
)
pyplot.show()

私の個人的な意見

複数のヒストグラムの結果を同じ Figure にプロットする場合、ライン プロットの方が見分けやすくなります。さらに、 でプロットすると見栄えが良くなりますyscale='log'

于 2014-03-04T02:05:49.873 に答える