LabViewでのヒストグラムの表示法
もちろん,LabViewにヒストグラムのコマンドはあります.
数学 -> 確率と統計 -> ヒストグラム or 一般ヒストグラム
と言うように.
問題なのは,
binの間隔ではなく,binの本数でしか設定ができない
と言う点にあります.
ヘルプを見ると,
この,間隔,というところのヘルプを見ると,
間隔は0よりも大きくなければなりません。間隔が0以下の場合、ヒストグラムは未定義で、VIはヒストグラム: h(x)およびX値を空の配列に設定してエラーを返します。デフォルトは10です。
というようにその意味合いではなく,制限,しか書かれていません.
そこで,間隔(本数)ではなく,binの幅を設定できないか,考えてみました.
まずは,以下のようなプログラムを作成します.
0,と10,という値の配列を作成し,実行すると,(間隔は10)
と言う結果が出ます.つまり,結論から言うと,
X値(ヒストグラムのbinの幅) = (最大値 - 最小値) ÷ 間隔
となるわけです.
もう少し複雑な配列で調べると,
となり,上記の式は正しいことがわかります (10-2)÷10 = 0.8.
しかし,X値の最初の値は,2.40,となっています.これはどのような関係なのでしょう?
結論から言うと,
X値の初期値 = X値 ÷ 2 + 最小値
であることがわかります.ですので,binの幅を指定するには,
間隔 = (最大値 - 最小値) ÷ X値(ヒストグラムのbinの幅)
を計算して,ヒストグラムのコマンドに入力すればよいことがわかります.
また,どのbinにカウントするか,ですが,上の図を見てもらえればよいと思いますが,
8.8の値 → 8.8のbin
8.4の値 → 8.8のbin
8.3.5の値 → 8.0のbin
となっています.従って,binの表示の意味は,
8.8 : 8.4以上,9.2未満
に入ることになり,
Xi - binの幅/2 <= data < Xi+1 + binの幅/2
と言うことになるかと思います.
X値が整数であったり,自然数であったり,と言う離散的な場合には,どう対応しましょう.
たとえば,サイコロを振った回数,など.
先ほどと同様な計算を行うと(配列の値をちょっと変えていますが)
と言うようになるわけです.
なので,X値からbinの幅の半分を引けばよい訳なので,
となります.....が!
なんと最後のbinが9です.データは10まであるのに....
まあ,気にしなくてもいい,という考えもありますが....きちんと行うためには,
一般ヒストグラム
で,最大値,最小値を指定する方法がよいかと思います.
以下が,一般ヒストグラムを用いた方法です.
このようにきれいにカウントできていることがわかります.