量 が量 の巾に比例する場合、それを確認するには、 両側対数目盛りのグラフ用紙にプロットすれば良いというのは、 理科の実験の常識であるが、 それを gnuplot で実行するには、 set logscale xy を実行すれば良い。 対数目盛りを解除するには set nologscale とする。
“error.tbl” を通常の目盛りと両側対数目盛りの両方でプロットする | ||||||||
|
片側対数グラフ 横軸だけ対数目盛りにするには set logscale x, 縦軸だけ対数目盛りにするには set logscale y とすれば良い。
対数グラフで負の値を処理するには 例えば誤差を符号付きで記録しているファイルがあるとき、 普通に using 1:2 としたのでは (対数関数の引数に負の値は渡せないので) エラーが発生する。 これを避けるには using ($1):(abs($2)) のように、 絶対値を取ることを明示すればよい。
(2016/5/12記)
軸の目盛りに、従来は指数形式で数値を表示していた(と記憶している)が、
普通の小数で書くようになってしまっている。
なんてのをスクリーンで見て、
0 がいくつあるか数えるのは大変なので、
指数形式で表示したい。
set format y "10^{%L}" set format x "10^{%L}" |
(2019/2/6記) 対数プロットして直線状になったとして、 傾きを測る or 確認することがしばしば行われる。 真面目にやるならば1次回帰曲線を求めたりするのかもしれないが、 大まかに調べるために、脇に三角形を描く方法が最近は良く使われている。 例えば上のデータの場合、 誤差が概ね に比例すると考えられるので、 斜辺の傾きが の直角三角形を描く。
draw-error.gp |
# draw-error.gp set logscale set format x "10^{%L}" set format y "10^{%L}" # 斜辺の傾きが -2 の三角形の準備 a=1000.0; # グラフの中に入るように三角形の高さを調整 x1=500; x2=900; y1=a*x1**(-2);y2=a*x2**(-2); # print sprintf("x1=%f, y1=%e, x2=%f, y2=%e", x1,y1,x2,y2); set object 1 polygon from x1,y1 to x2,y1 to x2,y2 to x1,y1 fs empty border plot "error.tbl" with linespoints set term png set output "draw-error.png" replot |
(もっとうまい描き方はないものか…)