はじめに
gnuplotを用いてヒストグラムを作成する際の様々な調整をするコードを備忘録的に書き留める。
動機
卒論関係でヒストグラムを作る必要性が生じたが、Excelでは作業が非常に煩雑だしラボの先輩が使っているRは難しそうという理由で前々から気になっていたgnuplotを触ってみることにした。
本題
使ったコードを説明を交えながら羅列する。必要に応じて追加したり飛ばしたりして思い描いた通りのヒストグラムにする。
set style fill solid 0.2
「fill solid number」で塗りつぶしを指定する。0だと背景色と同じで1だと全て塗りつぶす。個人的には0.2でやってみたらちょうど良かったので0.2としてある。
solidの他にpatternやemptyを指定することができる。
filter(x,y)=floor(x/y)*y
よく分かっていないがこれをするとうまくいく。解説は参考文献に譲る。
gnuplotでヒストグラムをつくる
set xlabel "length"
set ylabel "number"
set xrange [0:14]
set yrange [0:10]
X軸,Y軸の説明とX軸,Y軸の表示範囲
set boxwidth 0.5 absolute
軸の太さ。下で0.5刻みでヒストグラムを作るようにしているが軸の太さが1のままだとヒストグラム同士が重なって非常に見づらい。そのためヒストグラム同士が接するように0.5に設定した。
absoluteのところをrelativeにすることもできる。relativeにするとどうやら度数によって軸の太さが変わるようだ。
plot "hoge.txt" u (filter($1,0.5)):(1) smooth frequency with boxes
ヒストグラムをつくりたいデータを持ってきて描画する。u以下は参考文献に詳しく書かれている。gnuplotでヒストグラムをつくる
これである程度使えるレベルのヒストグラムにはなった。
その他
gnuplotの精義という本に色々載っていた。便利
今後も使うと思う。