hist.dat に保存されている、既に作成されているヒストグラム データを次のようにプロットしたいと思います。
#hist1
100
1
9
10
30
30
10
9
1
(0 行目はコメント)、最初の行にはヒストグラムの y 値の合計が含まれ、x 値は 1、2、... (行番号) です。したがって、正規化なしで使用できます
plot "hist.dat" every::1 using 0:1
そして、私が使用できる標準で
plot "hist.dat" every::1 using 0:($1/100)
問題は、合計値 (100) をどのように参照できるかです。正しい gnuplot コードを作成するためだけにファイルを先読みしたくないので、暗黙の値を書き留めたくないからです。私はすでに試しました
plot "hist.dat" using 0:($1/(columnhead+0))
ただし、列見出しは using 内で呼び出すことはできません (これは文字列であるため、int にするために 0 を追加しようとしました)。
ファイルを変更したり、このファイルに基づいて新しいファイルを作成したりしたくありません。適切な gnuplot コマンドを使用したいだけです。積算値を無視してgnuplotで再計算するのは避けたいです。
解決策: 正解を出す andyras によると、少し改善された方法は次のとおりです。
first(x) = ($0 == 0) ? (first = column(x), 1/0) : first
plot "hist.dat" using 0:($1/first(1))
したがって、複数の列がある場合は、これを使用してヒストグラムをプロットできます。
#hist1 hist2
10000 8000
1000 50
9000 70
1000 1100
3000 4500
3000 1200
1000 700
9000 380
1000