3.1 1変数関数のグラフ

plot xの式 とすると、 $ 1$ 変数関数のグラフが描ける2
gnuplot> plot sin(x)  
描いたものは clear コマンドで消せるが、 plot コマンドを使うと古い図は消えるので、 あまり使う必要はないかもしれない。

式をカンマで区切って複数書くことで、複数のグラフを重ねて描ける。
gnuplot> plot sin(x),cos(x)  

変数 ($ x$座標) の範囲を指定することができる。
gnuplot> plot [-pi:pi] sin(x),cos(x)  

あるいは事前に
gnuplot> set xrange [-pi:pi]  
のように指定しておくこともできる (unset xrange でクリアできる)。

ここで pi という組み込みの定数を用いた。
おまけ: pi について確認
gnuplot> print pi print コマンドで式の値が表示できる
3.14159265358979 → 確かに円周率

複雑な式の関数を何度も使う場合は、 関数定義をしておくと便利である。
gnuplot> f(x)=x**3-3*x**2+4*x-5 $ f(x)=x^3-3x^2+4x-5$ を定義
gnuplot> plot f(x)  
gnuplot> f(x)=exp(-x*x/2)/sqrt(2*pi) ← 標準正規分布の確率密度関数を定義
gnuplot> plot [-3:3] f(x)  

図 1: 正規分布の確率密度関数 ( $ \pm 3\sigma $ の範囲)
\includegraphics[width=7cm]{normal.eps}

値 ($ y$座標) の範囲も指定することができる。
gnuplot> plot [-pi/2:pi/2] [-10:10] tan(x) $ x$, $ y$ 両方とも指定
gnuplot> plot [] [-10:10] tan(x) $ y$ 座標のみ指定

簡単な場合分けは、C言語風の三項演算子 ? で実現できる。
gnuplot> f(x)=(abs(x)<1)? (x**2-1)**4:0 $ \vert x\vert<1$$ (x^2-1)^4$, それ以外で 0
gnuplot> plot [-2:2] [-0.1:1.1] f(x)  

変化が激しい関数の場合、関数値を計算する点の個数を (デフォールトの $ 100$ から) 増やす必要がある。
gnuplot> plot sin(100*x)  
gnuplot> set samples 10000  
gnuplot> plot sin(100*x)  

replot というコマンドがある。 画面に表示して確認したものをファイルに保存する目的で、 再描画するために使われることが多いが(後述する)、 重ね書きする目的で使うこともできる。
gnuplot> plot [-1:1] x**2  
gnuplot> replot x**3  
gnuplot> replot x**4  
同じことは (上で説明したように) , で区切って並べても良い。
gnuplot> plot [-1:1] x**2,x**3,x**4  

この場合は for による繰り返しを使っても実現できる。
gnuplot> plot [-1:1] for [i=2:4] x**i  

さらに for の少し凝った使い方 (title を用いた凡例指定の中で繰り返しの変数を用いる)。
gnuplot> plot for [i=1:10] 0.2*i*exp(x) title sprintf("%.1f*exp(x)", i*0.2)  
(sprintf() は C 言語で同じもの書式指定で文字列を作る関数である (説明略)。)

桂田 祐史