ある値の列からなるデータがあるとき, コレに関するヒストグラムを作成する. 直接的にその機能は gnuplot にはなく, 度数を計算する必要があるが, 次の方法を使うとうまくこれが gnuplot の機能で実現する.
smooth frequency で plot すると x に関して重複した点があった場合に y を加算した一つの点を出力する. そこで x:(1.0) ( \(y=1\) ) からなるデータを smooth frequency で描くと y 軸に度数が出力される. これに with boxes 等の装飾を施すことでよくあるヒストグラムを描ける. データは昇順にソートしておくのが無難. x の上に置く box は x を中心とする幅を持った箱として描画されるので, 必要に応じて 0.5 だけずらすなどすると見やすくなる.
width = 1.0
hist(x) = width * (floor(x / width) + 0.5)
set boxwidth width * 1.0
set xtics width
$data <<EOD
0
1
1
1
1
2
2
3
6
8
EOD
set xrange [0:10]
set yrange [0:]
set ytics 1
set grid
set style fill solid 0.5 border lc rgb '#55aaff'
plot $data u (hist($1)):(1) smooth frequency with boxes fillcolor '#55aaff' not