このドキュメントの文責は高橋にあります。コメント大歓迎です。
since Dec. 3, 2001
Last modified: Fri Jan 25 13:52:06 JST 2002
このドキュメントはもともと,筑波大学工学システム学類の1998年度の講義「システムダイナミクス」の受講者を対象に,グラフ描画ソフトGNUPLOTの使い方を説明したものです. したがってシステムダイナミクスのレポート作成に必要な最小限のことしか書いてありません. 興味を持たれた方は、これを参考にしていろいろな使い方を自分でみつけてみましょう.
下記のドキュメントでは、
G N U P L O T Unix version 3.5 (pre 3.6) patchlevel beta 336 last modified Wed Jun 4 06:45:45 BST 1997
G N U P L O T Unix version 3.5 (pre 3.6) patchlevel beta 340 (+1.1.4 1998/04/04) last modified Tue Nov 25 22:57:44 GMT 1997
kterm等の端末上で
% gnuplot
と入力するとGNUPLOTが起動します。
G N U P L O T
Unix version 3.5 (pre 3.6)
patchlevel beta 340 (+1.1.4 1998/04/04)
last modified Tue Nov 25 22:57:44 GMT 1997
Copyright(C) 1986 - 1993, 1997
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>
デフォルトでは出力端末がXになっているので、グラフはすべてXを使用して別のウインドウに出て来ます。postscript形式やTGIFのobj形式など、様々なタイプの出力端末を選んでそちらに出力することも可能です。
終了するときは、
gnuplot> quit
と入力します。
gnuplot> plot sin(x)このように入力すると、下のようなグラフが得られます。
gnuplot> plot (x-1)*x*(x+1)等と入力します。このようにすると、グラフが書き換えられます。複数のグラフを重ねて描きたければ、
gnuplot> plot sin(x) gnuplot> replot (x-1)*x*(x+1)または
gnuplot> plot sin(x), (x-1)*x*(x+1)というように入力します。
gnuplot> plot [-3:3][-2:2] sin(x), (x-1)*x*(x+1)
gnuplot> set xrange [-3:3] gnuplot> set yrange [-2:2] gnuplot> plot sin(x), (x-1)*x*(x+1)
gnuplot> plot sin(x), (x-1)*x*(x+1)等とやったあとは、
gnuplot> replotで同じグラフを描き直してくれます。範囲をいろいろ変えながらプロットしてみたい時には便利でしょう。
% cat data # This is a comment. # x y1 y2 0.000000 -0.403263 0.202985 0.200000 -0.517929 0.562537 : 29.800000 2.698706 4.412752 30.000000 1.598323 1.853904このようなファイルが存在する場合、
gnuplot> plot "data"と入力すると、ファイル``data''の1列目をX軸、2列目をY軸としたグラフが得られます。ファイル中で描画に使う列を指定するには、次の例のように入力します。
gnuplot> plot "data", "data" using 1:3こうすると、二つ目の曲線(緑色)は1列目をX軸、3列目をY軸のデータとみなして描かれます(デフォルトでは下図のような点と線分による表示にはならず、点のみで描かれるはずです。詳しくは次の章を参照して下さい)。
gnuplot> plot "data" with lines, "data" using 1:3 with pointsのように入力します。すると、下図のような出力が得られます。ところで、GNUPLOTのコマンドは、区別がつく限り後ろの文字を省略してもかまわないので、上記は
gnuplot> p "data" w l, "data" u 1:3 w pとしてもかまいません。
gnuplot> set data style linesと入力すると、以降スタイル指定なしのグラフは ``with lines'' で描かれます。どんなスタイルが使えるかは、
gnuplot> help styleまたは
gnuplot> help set styleとして調べて見て下さい(ヘルプの使い方も参照のこと)。
(注) GNUPLOTは起動時に $HOME/.gnuplot を探し、みつかればその内容を読み込んで環境を初期化します。高橋の $HOME/.gnuplot には
set data style linesp
と書いてあり、そのことをすっかり忘れていたので、ファイルからデータを読み込むの図は``linesp''で描かれてしまっているのでした。しかもサンプルデータが見つからんので作り直すこともでけへん...
3次元のグラフを描くには、``splot''を使います。
3次元のグラフの場合、見やすくするために視点を変えて描画させる必要もでてくるでしょう。視点を変える方法については、``view''コマンドのヘルプを参照して下さい。
GNUPLOTでは、Xを使って画面にグラフを描画する以外に、様々な形式の出力端末を選択してファイルとして出力させることも可能です。出力端末を変更するには、``set terminal''コマンドを使います。
gnuplot> set terminal
このように入力すると、使える出力端末の一覧が表示されます。画面に表示されているグラフをpostscript形式でファイル``out.ps''に出力させる場合には、次のようにします。
gnuplot> set terminal postscript
Terminal type set to 'postscript'
Options are 'landscape noenhanced monochrome dashed defaultplex "Helvetica" 14'
gnuplot> set output "out.ps"
gnuplot> replot
こうすると、カレントディレクトリに``out.ps''が作られます。postscriptのファイルですから、ghostview等のビューアで確認したり、postscriptプリンタで印刷することができます。
出力端末をXに戻すには、次のように入力します。
gnuplot> set output
gnuplot> set terminal x11
これで、以降のグラフは再び画面に描画されるようになります。
GNUPLOTにはここで説明した以外にも様々なコマンドが備わっています。「??っていうコマンドの使い方がわからへん」、あるいは「こんなグラフが描きたいねん」というときは、ヘルプを調べてみると良いでしょう。
例えば``plot''の使い方を知りたい時は、
gnuplot> help plot
と入力すると、ヘルプが画面にあらわれます。ヘルプの画面は、less等のページャと同様の操作でスクロールさせることができます(注)。参照したヘルプにサブトピックがある場合、ヘルプの最後にその一覧が出て来ます。例えば上の例では、最後までスクロールすると下のようになります。
Subtopics available for plot:
acsplines bezier binary csplines
: : : :
using with
(END)
ここで `q'を押すと、最後の行が
Subtopic of plot:
と変わります。上の選択肢から選んで入力すればそのヘルプへ移り、何も入力せずにリターンを押すとヘルプを終了して元の画面に戻ります。
(注) ってゆ〜か〜(^^;、GNUPLOTがlessを呼んでいるようです。` / 'を使って文字を検索することもできました。また、環境変数 PAGER が設定されていれば、それに従うようです。