3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

gnuplotでヒストグラムをつくる

Posted at

ヒストグラムを書くとき、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でフィルタを定義。
このフィルタは関数のようなもので、xyの幅に丸めることができる。
例えば、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でヒストグラムのプロット。
uusingの略記。
smooth frequencyu a:bとすれば、「同じaが現れれときそのaの登場回数につき頻度をb増やす」といったことが実現できる。
今回はここでのxfilterを使って、データを0.01幅で丸めたものが等しければその値に属する頻度を1増やしている。
with boxesで頻度の箱を表示しておしまい。

こんな感じになる。
kadai13.png

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?