gnuplot について。
- 起動の仕方 (対話型のプロンプト (gnuplot>) が立ち上がる。)
- 終了後にもグラフを残したい場合は、次のオプションを使う。
- 終了の仕方
- プロット内容を保存する方法
- プロット内容の読み込み方 または、シェルからいきなり実行 (-persist を付けないと実行後すぐに終了)
- 初等関数のグラフがカクカクするときは曲線を引くためのサンプル数が足りない。サンプル数を増やして対処する。
-
キャンパスのサイズを変更
sample: term = x11, XX = 640, YY = 450
sample: term = postscript, XX = 6.4, YY = 4.5 - メモリ (tics) の追加
- エラーバー (y 軸の対称誤差を表示)
-
データを間引く (every を使う)。
- 覚え方:
- 1. ステップ 2. スキップする数 3. 読み込み終わり
- の順番で、それぞれ
- 1. 行 2. ブロック
- の順番に並べる。
- よくある例)
- i+1 行目からプロット
- データを間引くために奇数行だけ読み込み
- データを間引くために偶数行だけ読み込み
-
第 2 軸を第 1 軸と関連づける
(cf:
gnuplot demo script: linkedaxes.dem
)
2 次元のプロットに関して、反対側の座標軸 (x2, y2) を設定することができる。そして、しばしば 1 軸と 2 軸で値を関連させたい場合がある。単純に定数倍かもしれないし、逆数だったり指数関数かもしれない。これらを実現するのが、 set link コマンドだ。 基本的には、 の形で記述する。
1 対 1 対応させるのだから、一つの関数でいいように思うが、gnuplot 内では逆関数が導けないので (多分) 逆関数も自分で与える必要がある。 y2 軸に関して設定したければ、x2 を y2 で置き換える。また、<関数>および、<逆関数> で使う変数は、x2 のとき x、y2 のとき y である。
例えば、参照先の例のように eV と Å を関連付けたい場合は、 とすればいい。
これはつまり、最初の <関数> で、
x2 = 12398./x
そして、次の <逆関数> で、
x = 12398./x2
を設定しているということである。<逆関数> では変数に x2 ではなく x を用いることに注意する。
ところで、片方を log スケール (10 の何乗か) でプロットした場合は、以下のような振る舞いをするので注意する。
先に示したコマンドで送られる値は全て常対数 (log10) になる。
例えば、 とすると、
x2 = 3.0*x
で x2 および x を対数で置き換えたもの \begin{equation} \log_{10} x_2 = 3 \log_{10}x = \log_{10} x^3 \end{equation} がプロットされ、x2 軸は \(x^3\) のスケールでプロットされる。
なので、以下のように順序立てて考えると、- 定数倍したい \begin{gather} x_2 = a x \quad \Rightarrow \quad \log_{10} x_2 = \log_{10} (a x) = \log_{10} x + \log_{10} a \\ \Rightarrow \tilde{x}_2 = \tilde{x} + \log_{10} a \end{gather}
- ベキ乗したい \begin{gather} x_2 = x^b \quad \Rightarrow \quad \log_{10} x_2 = \log_{10} x^b = b \log_{10} x \\ \Rightarrow \tilde{x}_2 = b \tilde{x} \end{gather}
- シフトしたい \begin{gather} x_2 = x + c \quad \Rightarrow \quad \log_{10} x_2 = \log_{10} ( x + c ) = \log_{10} ( 10^{\log_{10} x} + c)\\ \Rightarrow \tilde{x}_2 = \log_{10} (10^{\tilde{x}} + c) \end{gather}