GNUPLOTの使い方


[2014.08.17] 以下はかなり古いバージョンです. 最新版(といってもコンテンツは古いままですが)はこちら

このドキュメントの文責は高橋にあります.

目次


はじめに

このドキュメントは,グラフ描画ソフトGNUPLOTの使い方を説明したものです. 初歩的なこと書いてありませんので,より詳しいことが知りたくなったらリンクをたどってみて下さい.

下記のドキュメントでは,龍谷大学瀬田学舎の計算機実習室のTurboLinuxで動く version 3.7 や,高橋の手元のFreeBSDで動く version 4.0 を対象に想定しています. でも,これらのバージョン固有の機能は使ってませんので,以下の内容はあちこちに転がってる大抵のバージョンのGNUPLOTで通用すると思います.

up 目次へ down 次へ


起動・終了の仕方

端末上で

% gnuplot
と入力するとGNUPLOTが起動します.
        Version 3.7 patchlevel 3
        last modified Thu Dec 12 13:00:00 GMT 2002
        System: Linux 2.6.0-13

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

        Type `help` to access the on-line reference manual
        The gnuplot FAQ is available from
        http://www.gnuplot.info/gnuplot-faq.html

        Send comments and requests for help to 
        Send bugs, suggestions and mods to 


Terminal type set to 'x11'
gnuplot> 
デフォルトでは出力端末がXになっているので,グラフはすべてXを使用して別のウインドウに出て来ます.postscript形式やTGIFのobj形式など,様々なタイプの出力端末を選んでそちらに出力することも可能です.

終了するときは,

gnuplot> quit
と入力します.

up 目次へ down 次へ


2次元のグラフを描く

ためしに y=sin(x) を描いてみましょう.
gnuplot> plot sin(x)
このように入力すると,下のようなグラフが得られます.

X軸やY軸の範囲は,適当に決めてくれます.自分で指定することもできます.別の関数を描きたければ,
 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)
というように入力します.

up 目次へ down 次へ


描画範囲の指定

上記の通り入力すると,下のようなグラフになります.

これじゃちょっと悲しいので,X軸とY軸の範囲を指定しましょう.範囲指定の方法 には,二通りあります. その一の場合,範囲指定はこのプロットにおいてのみ有効となります.その二の場合は,この範囲指定が以降のデフォルトとなります.どちらの場合も,下のグラフが得られます.

グラフを何度も描き直す場合は,一度
gnuplot> plot sin(x), (x+1)*x*(x-1)
等とやったあとは,
gnuplot> replot
で同じグラフを描き直してくれます.範囲をいろいろ変えながらプロットしてみたい時には便利でしょう.

up 目次へ down 次へ


ファイルからデータを読み込む

次は,関数を指定するのではなく,テキストファイルに書き込まれたデータをグラフにする場合です.
% 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軸のデータとみなして描かれます(以下の例は折れ線+点で描かれてますが,デフォルトでは点のみで描かれるはずです).

up 目次へ down 次へ


データスタイルの指定

ファイルから読み込んだデータを表示する場合,デフォルトの描画スタイルは点を使ったものになります.これを変更したければ,
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
として調べて見て下さい(ヘルプの使い方も参照のこと).

up 目次へ down 次へ


3次元のグラフを描く

3次元のグラフを描くには,``splot''を使います.

3次元のグラフの場合,見やすくするために視点を変えて描画させる必要もでてくるでしょう.視点を変える方法については,``view''コマンドのヘルプを参照して下さい. ちなみに,最近のバージョン(version 4.0とか)では,三次元グラフをマウスでぐりぐり回せたりします.

up 目次へ down 次へ


ファイルへの出力

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
これで,以降のグラフは再び画面に描画されるようになります.

up 目次へ down 次へ


ヘルプの使い方

GNUPLOTにはここで説明した以外にも様々なコマンドが備わっています.「??っていうコマンドの使い方がわからへん」,あるいは「こんなグラフが描きたいねん」というときは,ヘルプを調べてみると良いでしょう.

例えば``plot''の使い方を知りたい時は,

gnuplot> help plot
と入力すると,ヘルプが画面にあらわれます.ヘルプの画面は,less等のページャと同様の操作でスクロールさせることができます().参照したヘルプにサブトピックがある場合,ヘルプの最後にその一覧が出て来ます.例えば上の例では,最後までスクロールすると下のようになります.
Subtopics available for plot:
      acsplines      bezier         binary         csplines
         :             :              :               :
      using          with
(END)
ここで `q'を押すと,最後の行が
Subtopic of plot: 
と変わります.上の選択肢から選んで入力すればそのヘルプへ移り,何も入力せずにリターンを押すとヘルプを終了して元の画面に戻ります.

(注) ってゆ〜か〜(^^;,GNUPLOTがlessを呼んでいるようです.` / 'を使って文字を検索することもできました.また,環境変数 PAGER が設定されていれば,それに従うようです.

up 目次へ


リンク

up 目次へ