PREVIOUS | TOP | NEXT

(第4回)Gnuplot入門

今日の目標

GNUPLOT は、Thomas Williams, Colin Kelleyらによって作られたグラフ作成ツールです 。UNIXの他、MS-DOS,MS-WINDOWS,Macintosh等で利用できます。今日はその使い方を学びます。目標は

  1. グラフを画面上で確認できるようになる。
  2. eps画像ファイル出力出来るようになる。

RGL (PDF版) pp 129-132参照。 Webにもいろいろとgnuplotの分かり易い解説があります。 検索してみてください。

gnuplotの起動

ターミナルを開いて
$ cd Documents .....作業ディレクトリに移動して
$ gnuplot
$
すると、
........................
 
Terminal type set to 'x11'
gnuplot>   
"gnuplot> " というプロンプトが表示されます.これがgnuplot のコマンドラインで,ここにコマンドを対話的に入力しながら作業を進めます.

gnuplot で関数のグラフを描く

さっそく y=sin(x) のグラフをプロットしましょう

gnuplot> plot sin(x) 

別のグラフを描きます(* は掛け算の記号を表します) 線を太くしておきましょう。

gnuplot> plot cos(2*x) lw 10 
「讃岐うどん」(あるいは「きしめん」)のようなコシのある曲線になりました。

2つのグラフを重ねて描きます。

gnuplot> plot sin(x) lw 5, cos(2*x) lw 10

2つのグラフが異なる色と太さで表示されています。右上に色と関数との対応が表示されています。

更にこのグラフの上に別のグラフを重ねることもできます。

gnuplot> replot exp(-x*x) 

ここで一旦 gnuplot を終了しましょう。quit が終了のコマンドです。

gnuplot> quit
$ 

gnuplot でデータの可視化

まず準備として、各自の~/Documentsでターミナルから

$ emacs 1.dat  &

として、ファイル 1.dat を開き、 次のファイルを作成する。

0 0 0 
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125

ここで、数字と数字との間はスペースで区切る。 もちろん、

C-x C-s で保存する。
このデータをでグラフ化するため、再び gnuplot を起動する。
データファイルのグラフ化は plot "ファイル名"です。 引用符("")が必要であることに注意。

gnuplot> plot "1.dat"

データ点ごとに点を描いています。
同じデータを用いて、描画方法を変更することができます。

gnuplot> plot "1.dat" with line

データ点を直線で結んでいます。結果として滑らかな曲線としてのグラフに見えます。
以下のようにすると棒グラフの様に描画します。

gnuplot> plot "1.dat" with impulse

3次元プロットも可視化できます。

gnuplot> splot [-2:2][-2:2] exp(-(x**2 + y **2))
gnuplot> set hidden3d
gnuplot> replot
gnuplot> set isosample 30,30
gnuplot> replot

その他のグラフ

まずは、極座標

gnuplot> set polar

	dummy variable is t for curves

t は θ (theta) の tでしょう。

gnuplot> plot t lw 5
gnuplot> plot sin(3*t) lw 10
gnuplot> unset polar

	dummy variable is x for curves

お次は、パラメータ表示で定義される図形。 例えば円{x=cos(t),y=sin(t), 0≦t≦2π}のようなものは次の様にして 描くことができます。まず

gnuplot> set parametric

とすることで、パラメータ表示モードになります。これ以降 plot や splot コマンドはパラメータ表示でのグラフを描くことになります。たとえば

gnuplot> plot cos(t),sin(t)
gnuplot> splot cos(u)*cos(v),cos(u)*sin(v),sin(u)

で、円や球面が描けます。パラメータの範囲を指定したいときは

          
gnuplot> plot [0:pi] cos(t),sin(t) lw 5
gnuplot> plot [0:4*pi] sin(t),sin(2*t)  lw 10

などとしてください。パラメータ表示モードをやめるときは

gnuplot> unset parametric

です。

いろいろな曲線を描画してみると 楽しいかもしれません。

gnuplot でグラフを作成し eps 形式で保存する

gnuplotのグラフを他のアプリケーションからも利用可能にするために、 gnuplotの画像出力を eps (Encapsulated Post Script)形式のファイルとして出力します。

epsファイルは簡単にに文書に組み込むことができます。 実際、次回の演習ではLaTexを用いてグラフ入りの文書を作ります。

まずは画面で確認

gnuplot で sin(x) と

のグラフを書きましょう。

$ gnuplot
gnuplot> plot [-pi:pi] sin(x), x, x-x**3/6,x-x**3/6+x**5/120

グラフをカスタマイズ

座標軸を表示させてみましょう。

gnuplot> set zeroaxis
gnuplot> replot

(set は一般に、gnuplot に対して、さまざまな動作モードを変更するときに用います。)

このグラフでよければ次に進みます。

eps 形式のファイル作る

gnuplot> set term postscript eps color 22 ・・・画像データの出力形式を eps に変更

で gnuplot の出力形式が postscript eps 形式に変更されます(最後の 22 は文字サイズを 22 にするということです。)。
以降、グラフは「絵」としては出力されず eps 形式データ(文字によって絵を 表す形式の一つ。 )として出力されます。 Post Scriptファイルはテキストファイルなのです。 拡大してもきれいなままですが、ファイルのサイズが嵩むので 注意が必要です。

つづいて

gnuplot> set output "taylor.eps" ・・・画像データの出力先をファイル taylor.eps に変更

で出力結果をファイル taylor.eps に出力するようになります。
これ以降画像データは画面に出力されないで、代わりにファイル taylor.eps として作成されます。

つづいて replotコマンドを用いてグラフを描きましょう。

gnuplot> replot

これで4つの関数のグラフを描きましたが、それはファイル taylor.eps に eps 形式で出力されています(画面には出力されません)。

gnuplot を quit で終了します。

gnuplot> quit
$

ls コマンドを実行してみれば、新たに taylor.eps が作成されているのが確認できるはずです
出力された EPS ファイルの内容は gv コマンドで確認できます(gv は ps, eps 形式のファイルを画面に出力するアプリケーションです)。

$ gv taylor.eps & ・・・ファイル taylor.eps の内容を画像として表示

上の操作どおりできていれば、4つの関数のグラフが描けているはずです

気づいたとはおもいますが、これらはsin(x)のTaylor展開で次数を順に上げていったものになっています。
あるいは
$ evince taylor.eps &
でドキュメントビューワーで画像がが開きます。

epsファイルの印刷

  • プリンタへの出力
    GIMPで開いて、
    $ gimp taylor.eps &
    
    グラフの横に文字ツールで「A2、あるいはB2, 名前」を書いてください。
    その後、「ファイル」メニューから「印刷」 を選びます。

    gnuplotのなかでのその他のコマンド

    まず、「端末」でやっていたような、コマンドの ヒストリー機能をgnuplotでもつかうことができる。
    gnuplot> C-p
    
    でひとつ前のコマンド、
    gnuplot> C-n
    
    でひとつ後のコマンドが出る。

    ある特定の文字列を含む以前に入力したコマンドを 探すには、

    gnuplot> C-r
    
    とした後、文字列(たとえば"22")をあたえると (reverse-i-search)`22': set term postscript eps color 22 と出る。 その後、コマンドを編集する。
    gnuplot> set term postscript eps color 22
    

    グラフの表示領域を設定する。

    gnuplot> set xr[9.5:11.5]
    gnuplot> set yr[0:2]
    

    グリッドを描く。刻みつき。

    gnuplot> set grid
    gnuplot> set ytics 0.5
    gnuplot> set xtics 0.5
    

    グラフの説明を左下に移す。

    gnuplot> set key left bottom
    
  • 課題提出

    各自 taylor.eps プリントアウトし、 その紙の空いている所に
    
    情報処理演習(A2)第4回課題
    あるいは、
    情報処理演習(B2) 第4回課題
    名前
    学籍番号
    を記入のうえ、演習時間内(+ α)に提出。

    GIMPのなかでテキスト入力することができます。 これを利用するとよいでしょう。


    PREVIOUS | TOP | NEXT