gnuplot
gnuplot>となれば, gnuplotが立ち上がって, 命令を待っている状態です. (ここで「gnuplot >」はプロンプトと呼ばれ, 待受状態を表します. 以降の説明に頻出しますが, この部分の入力は不要です)
gnuplot> exit
gnuplot> plot sin(x)
ついでに, 0.5*cos(x) の関数も同時に表示してみましょう.
gnuplot> plot sin(x), 0.5*cos(x)2つの関数は「コンマ(,)」で区切ります. なお, 三角関数(sin, cos, tan)の横軸は, rad単位の値となります.
他にも次のような関数が使えます.
関数 | gnuplotでの表記 |
べき乗: x2 + x3 + x4 | x**2+ x**3 + x**4 |
指数関数: ex | exp(x) |
平方根: √(x) | sqrt(x) |
絶対値: |x| | abs(x) |
自然対数: logex | log(x) |
常用対数: log10x | log10(x) |
正弦関数: sin(x) | sin(x) |
余弦関数: cos(x) | cos(x) |
正接関数: tan(x) | tan(x) |
逆正弦関数: arcsin(x) = sin-1(x) | asin(x) |
逆余弦関数: arccos(x) = cos-1(x) | acos(x) |
逆正接関数: arctan(x) = tan-1(x) | atan(x) |
gnuplot> plot [-pi:pi][-1.2:1.2] sin(x), 0.5*cos(x)と入力してみてください. 括弧内の数値で範囲を指定します.
gnuplot> set xlabel "x [rad]" gnuplot> set ylabel "y" gnuplot> replot
gnuplot> set xtics pi/2 gnuplot> set mxtics 2 gnuplot> replot
gnuplot> set format x "%3.2f" gnuplot> replotここで%3.2fは, 表示の最小幅を3桁とし, 小数点以下を2桁とするという意味です. ちなみに指数表示したいときには「%e」あるいは「%E」を使います.
円周率の倍数で表したい時には, 「%P」を用います.
gnuplot> set format x "%2.1P{/Symbol p}" gnuplot> replot円周率πは特殊文字{/Symbol p}で書けます. 他の特殊文字(ギリシア文字)はこちらを 参照ください.
y軸も次のように桁数を指定するとかっこいいかも.
gnuplot> set format y "%2.1f" gnuplot> replot
凡例を消したければ
gnuplot> set key off gnuplot> replot凡例を表示するには
gnuplot> set key on gnuplot> replotです.
凡例をグラフの左上に移動します.
gnuplot> key left top gnuplot> replot
細かい位置調整が必要でしたら, 次のように画面の中の座標で指定できます.
gnuplot> set key at graph 0.25, 0.95ここで, 次のようにして位置を指定します.
凡例の 線と名前の 順序を 入れ替える場合には
gnuplot> set key reverse gnuplot> replot元に戻すには次のように入力します.
gnuplot> set key noreverse gnuplot> replot
gnuplot> plot [-pi,pi][-1.2:1.2] sin(x) with lines lt 5 lw 2 title "func 1", 0.5*cos(x) with points pt 1 title "func 2"「with lines」や「with points」 を書くと次の指定が可能となります.(詳細は後で)
また, 「title "何々"」 で凡例の名前 (ここでは「func 1」や「func 2」)を指定できます.
gnuplot> set samples 20 gnuplot> replot「set samples」で, 点の数を調整できます. 上の例で, 20を「50」程度に増やすとなめらかになり, さらに増やすことも可能です.
ここまで, キーボードでコマンドを逐一入力する方法を紹介しました. この方法ではgnuplotを一旦終了してしまうと, 設定が全て初期化(消去)され てしまいます.
(注意)Windowsの場合, 例えばデスクトップにgraphというフォルダーを作成(デスクトップ上でマウスを右クリック→[新規作成]→[フォルダ]→フォルダ名をgraphに変更)し,そこにスクリプトファイルを保存します. なお, フォルダ名は半角英数字でスペース等は入れないのが良いようです.
ここでは, ファイル名を「func.gnp」として説明します.
# sin, cos をプロットする gnuplot スクリプト # 2017/05/11 K.Yamamoto # set xlabel "x [rad]" set ylabel "y" set xtics pi/2 set mxtics 2 set format x "%3.2P{\Symbol p}" set format y "%2.1f" set key at graph 0.25, 0.95 set samples 20 plot [-pi:pi][-1.2:1.2] sin(x) with lines linetype 3 title "func 1",\ 0.5*cos(x) with points pointtype 1 title "func 2" pause -1これまでと違う点は次の3点です.
gnuplot> call "func.gnp"
> gnuplot func.gnp
pause より先に進むには, グラフ上でキーボードの「q」を押下するか, ターミナル上でリターンキーを押下します.
スクリプトを中止するには, ターミナル上で ctrl-C (Ctrlキーを押しながらcキーを押す)とします.
描いた図を保存して論文等に利用することも可能です. 論文等にグラフを利用する場合, 図の拡大縮小してもキレイなベクトル形式が好都合なので,次の組み合わせをお勧めします.
gnuplotではこれから説明する命令を実行することで, これら出力形式(terminal)とファイル名をを指定できます. ただ, 線や点の種類がterminalによってかわってしまうので注意が必要です. どの形式も次の手順になります. これらはgnuplotに直接命令してもよいし,スクリプトファイルに書いてもよいです.
set terminal emf enhanced font "Times,20" set output "hoge.emf" replot
set terminal svg enhanced font "Times,20" set output "hoge.svg" replotベクター形式ですので, 拡大・縮小で画質が劣化しません. hoge.svgをinkscapeで編集して,その結果をemf形式などで保存できます.
set terminal postscript eps enhanced font "Times,20" clip set output "hoge.eps" replot
これらをまとめたスクリプトファイル(func-save.gnp)を実行してみてください. hoge.emfファイルと hoge.svgファイルが生成されていると思います.
なお, 出力形式を最初のディスプレイ(wxt)に戻して,画面上でグラフを確認するのは次の命令です.
set terminal wxt replot