GNUPLOT は、Thomas Williams, Colin Kelleyらによって作られたグラフ作成ツールです 。UNIXの他、MS-DOS,MS-WINDOWS,Macintosh等で利用できます。今日はその使い方を学びます。目標は
RGL (PDF版) pp 129-132参照。 Webにもいろいろとgnuplotの分かり易い解説があります。 検索してみてください。
$ cd Documents .....作業ディレクトリに移動して $ gnuplot $すると、
........................
Terminal type set to 'x11'
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 $
まず準備として、各自の~/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 を起動する。
gnuplot> plot "1.dat"
データ点ごとに点を描いています。
同じデータを用いて、描画方法を変更することができます。
gnuplot> plot "1.dat" with line
データ点を直線で結んでいます。結果として滑らかな曲線としてのグラフに見えます。
以下のようにすると棒グラフの様に描画します。
gnuplot> plot "1.dat" with impulse
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のグラフを他のアプリケーションからも利用可能にするために、 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 &でドキュメントビューワーで画像がが開きます。
$ gimp taylor.eps &グラフの横に文字ツールで「A2、あるいはB2, 名前」を書いてください。
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
情報処理演習(A2)第4回課題を記入のうえ、演習時間内(+ α)に提出。
あるいは、
情報処理演習(B2) 第4回課題
名前
学籍番号
GIMPのなかでテキスト入力することができます。 これを利用するとよいでしょう。