next up previous
Next: 4 レポート課題6 Up: 1999年度情報処理II     第8回 gnuplot の紹介 Previous: 2 はじめに

3 簡単な gnuplot のコマンド

起動
次の二つの方法がある。
  1. gnuplot
  2. gnuplot コマンド・ファイル名
[
l]単純な起動法

		 waltz% gnuplot


G N U P L O T
unix version 3.5 (pre 3.6)
patchlevel beta 325
last modified Sun Jan 5 21:52:18 GMT 1997

Copyright(C) 1986 - 1993, 1996
Thomas Williams, Colin Kelley and many others

Send comments and requests for help to info-gnuplot@dartmouth.edu
Send bugs, suggestions and mods to bug-gnuplot@dartmouth.edu

Terminal type set to 'x11'
gnuplot> ← ここに色々なコマンドを入力する。矢印キーによる編集が可能。
起動後にコマンド・ファイルを読み込む
load コマンドを使う。load "ファイル名" と引用符 " でファイル名を括くくるのがミソ。
例えば、次のようにしてデモ用のコマンド・ファイルを読み込んで実行して みよう (``Hit return to continue ($x$)'' と表示されたら、リ ターン・キーをタイプする)。

gnuplot> load "surface2.dem"

興味がわいたら、surface2.dem の中身を読んでみよう (これはテ キスト・ファイルなので less や mule を使って読める。)。
終了
gnuplot> プロンプトに対して exit ま たは quit コマンドを使う。
オンライン・マニュアル
help コマンドを使う。help コマンド名 と すると、コマンドの説明が読める。
電卓としての利用
print の後に式を書く。

 print sin(2.0/3.0*pi) 		 $\dsp\sin\left(\frac{2\pi}{3}\right)$ 

print {1,2}**2 $(1+2i)^2$
print abs(2,4) $\vert(2+4i)\vert$
ユーザー定義の関数
関数名(引数)= でユーザーが関数を定義できる。
例えば f(x,y)=x**2-y**2 のように定義しておくと、 splot [-1:1] [-1:1] f(x,y) のような使い方ができる。
タイトルの設定
set title "タイトル文字列"
$1$ 変数関数のグラフ
plotコマンドを使う。
  1. plot xの式
  2. plot コンマで区切ったxの式のリスト
例えば

gnuplot> plot x,x**2,x**3

とすると 3 つの関数 $x\mapsto x$, $x\mapsto x^2$, $x\mapsto x^3$ のグ ラフを描く。
データファイルの内容をプロット
ファイルに書かれた座標データで指定した点をプロットすることも、plot コマンドで実現できる。

gnuplot> plot "sintable" 

gnuplot> plot "sintable" with line

各行に $3$ つのデータがあり、そのうちの $2$ 列目のデータは無視して、 $1$ 列目のデータを $x$ 座標、$3$ 列目のデータを $y$ 座標に持つ点をプロッ トするには

gnuplot> plot "sincostable" using 1:3

とする。つまり、どの二つの列のデータを使うか using : として指定するわけ。
グラフの表示範囲の指定
二つの方法がある。
  1. plot を使う際に一々指定する。
    1. ``[左端の座標:右端の座標]'' としてグラフ の $x$ 軸の表示範囲が指定できます。
    2. ``[左端の座標:右端の座標] [下端の座 標:上端の座標]'' としてグラフの $x$ 軸, $y$ 軸 の表示範囲が指定できる。
      例えば plot [-10:20] [-10:200] x**2
  2. 前もって範囲の指定をしておく。
    set xrange[左端の座標:右端の座標]
    set yrange[下端の座標:上端の座標]
グラフの再描画
replot コマンドを使うとグラフの再描画ができる。
対数グラフ
実験などのデータ分析によく使われる対数グラフを描くには、 set logscale xset logscale xy として、 どの軸を対数目盛にするか、指定するだけで OK.

gnuplot> set logscale xy

gnuplot> splot [0.1:100] x**2
グラフをより正確に描く
gnuplot では、連続変数の範囲を適当に格子に区切って、格子点の上で関数 値を計算して、あとは「まっすぐ」つなぐことでグラフを描いている。普段は 各軸を $100$ 等分するのだが、足りない場合は set samples で適当 に増やす。

gnuplot> plot [-pi:pi] sin(100*x)

gnuplot> set samples 1000,1000
gnuplot> replot
パラメーター表示による曲線の表示
$x=f(t)$, $y=g(t)$ とパラメーター表示される曲線を描くには、 set parametric としてから plot $f(t)$ を表す 式, $g(t)$ を表す式 とする。 このモードから抜けるには set noparametric とする。
例えば

gnuplot> set parametric

gnuplot> plot cos(2*t),sin(5*t)
gnuplot> set noparametric

とするとリサージュ曲線が描ける。

 gnuplot> set parametric

gnuplot> plot [0:10*pi] t*cos(t),t*sin(t)
gnuplot> set noparametric

とすると $r=\theta$ という極座標の方程式で表される曲線 (アルキメデスの 螺旋) を $0\le \theta\le 10 \pi$ の範囲で描くことになる。
$2$ 変数関数のグラフ
splot コマンドを splot xyの式 のよう に使う。
例えば $f(x,y)=x^2-y^2$ のグラフを描くには

gnuplot>  splot x**2-y**2

とする。
印刷用のデータ作成
次のようにして、出力形式を PostScript1 にして、描画 先を (画面ではなく) ファイルにする。
  1. set term postscript
  2. set output "ファイル名"
それから描画コマンドを用いると、グラフ・データがファイルに PostScript 形式で格納される。こうして作成したファイルは lp コマンドでプリンター に送るだけで印刷できる。描画先を画面に戻すには set term x11 とすればよい。
次のようにすると ``mygraph.ps'' というファイルが出来る。

gnuplot> splot [-1:1] [-1:1] x**2-y**2 						 画面に表示して確認する。 

gnuplot> set term postscript 出力形式を PostScript にする。
gnuplot> set output "mygraph.ps" 出力先を画面から mygraph.ps という
名前のファイルにする。
gnuplot> replot 再描画。このときは、画面でなく、
ファイルに書かれる。
gnuplot> set term x11 出力形式を元に戻す。

こうして出来た mygraph.ps を印刷するには、kterm から
[
l]印刷

waltz%  lp mygraph.ps

とするわけである。

なお、mygraph.ps の内容を画面に表示させたい場合は ghostview を使って次のようにする。
[
l]画面表示

waltz% ghostview mygraph.ps &

プログラム (コマンド・ファイル) の作成
複雑なコマンド入力が必要な場合、それらをテキスト・ファイルとして作成 しておいて、load コマンドで実行させることが出来る。例えば
[
l]myprog.g
set term postscript
set output "myprog.ps"
splot [-1:1] [-1:1] x**2-y**2
set term x11
replot

のようなファイル myprog.g を作っておけば2
[
l]プログラムの実行

gnuplot> load "myprog.g"

とするだけで、コマンド列が実行できる。


next up previous
Next: 4 レポート課題6 Up: 1999年度情報処理II     第8回 gnuplot の紹介 Previous: 2 はじめに
Masashi Katsurada
平成20年10月18日