ヒストグラムを書くとき、gnuplotを使えばソフトは必要ないし、プログラムも書く必要ないので楽。
大学の授業でボックスミュラー法の確認のために使った。また何をしているのか調べるのが面倒なのでメモ。
gnuplotを起動して以下を入力すればおっけー。
hoge.dat
が入力データ。
set style fill solid
filter(x,y)=floor(x/y)*y
plot "hoge.dat" u (filter($1,0.01)):(1) smooth frequency with boxes
まず、set style fill solid
でスタイルを図形塗りつぶしに変更。
後に行う箱プロットの中身を塗りつぶす。
次に、filter(x,y)=floor(x/y)*y
でフィルタを定義。
このフィルタは関数のようなもので、x
をy
の幅に丸めることができる。
例えば、0.11245のような値を0.01幅で丸めるとき、x/y
で11.245にしたものをfloor
で11にして、再度0.01倍することで0.11に丸めている。
最後に、plot "hoge.dat" u (filter($1,0.01)):(1) smooth frequency with boxes
でヒストグラムのプロット。
u
はusing
の略記。
smooth frequency
でu a:b
とすれば、「同じaが現れれときそのaの登場回数につき頻度をb増やす」といったことが実現できる。
今回はここでのx
にfilter
を使って、データを0.01幅で丸めたものが等しければその値に属する頻度を1増やしている。
with boxes
で頻度の箱を表示しておしまい。