• 検索結果がありません。

● gnuplot の利用法

N/A
N/A
Protected

Academic year: 2021

シェア "● gnuplot の利用法"

Copied!
6
0
0

読み込み中.... (全文を見る)

全文

(1)

gnuplot

の利用法

数値計算結果をグラフで表現する場合にgnuplotと呼ばれるツールを利用することが多い.

1. gnuplot

でグラフするためのデータをつくる

gnuplotでグラフを作成する場合には,作成したいデータをファイルに保存しておく必要がある.

プログラムの実行結果を foo.datというファイル名で出力するためには,

./program > foo.dat

として,出力結果をファイルに保存すればよい.

gnuplotでは,各行に横軸の値と縦軸の値を空白で区切ったデータを用いる. たとえば,次のデー

タは,y= expxの値をx= 1.0からx= 2.0まで, 0.1刻みにx exp(x)の値を空白で区切って 出力したものである.

1.000000 2.718282 1.100000 3.004166 1.200000 3.320117 1.300000 3.669297 1.400000 4.055200 1.500000 4.481689 1.600000 4.953032 1.700000 5.473947 1.800000 6.049647 1.900000 6.685894 2.000000 7.389056

以下では,このようなデータがファイルfoo.datに保存されている場合に, gnuplotを利用してこ れを図示する方法を考える.

2. gnuplot

の起動

gnuplotはコマンド名gnuplotで起動できる. gnuplotを起動すると,次のように表示される.

Terminal type set to ’svg’

gnuplot>

この“gnuplot>”以後の部分にgnuplotのコマンドを入力することができる.

3.

グラフの出力形式の変更

ここで表示されている“Terminal type set to ’svg’”“svg”の部分は,グラフをどのよう なファイル形式(表示形式)で出力するかを示している. グラフをディスプレイに表示するには,

“set terminal aqua” と指定する. 他の出力形式には以下のようなものがある. gnuplotでは数

多くの出力形式を選択できるが,以下のいずれかを用いることが多い.

(2)

• aqua形式:MacOSXでディスプレイにグラフを出力する.

“set terminal aqua”

• x11形式:LinuxなどのUNIXシステムでディスプレイにグラフを出力する.

“set terminal x11”

• svg形式:グラフをsvgフォーマットのファイルに保存する. MacOSXではsvgフォーマッ トファイルはSafariで見ることができる.

“set terminal x11”

“set output "xxx.svg"”(この部分は,出力するファイル名を指定している)

• eps形式:グラフをepsフォーマットのファイルに保存する. TEX などの文書にグラフを埋 め込むときに利用する.

“set terminal postscript eps color”

“set output "xxx.eps"”

• pdf形式:グラフをpdfフォーマットのファイルに保存する.

“set terminal pdf”

“set output "xxx.pdf"”

• pstricks形式:グラフをLATEXpstricksで利用できるファイルに保存する.

“set terminal pstricks”

“set output "xxx.tex"”

4. gnuplot

でグラフを作成する

(1)

【グラフの描画】 ファイルに保存したデータをグラフとして表示するには,次のように入力する.

ここで, foo.datがグラフを作成するための元となるデータが入ったファイルである. (See

Fig.1)

gnuplot> plot "foo.dat" with lines

【対数グラフ】 y軸を対数目盛りにする. (See Fig.2)

gnuplot> set logscale y

gnuplot> plot "foo.dat" with lines

これによって得た結果がFig. 2である. なお,x軸を対数目盛りにするには,set logscale x,両方の軸を対数目盛りにするには,set logscaleとする. また,unset xxxxset xxxx と設定した内容をキャンセルできる.

【グラフの種類の変更】 gnuplot> plot "foo.dat" with linespoints

とすると, Fig. 3のような結果を得る. また,「点」だけをプロットする場合にはwith points とする.

(3)

【複数のデータ】 複数のデータを一つのグラフにまとめるには,

gnuplot> plot "foo.dat" with linespoints, "bar.dat" with lines

とすればよい. (このように指定すれば, いくらでも多くのデータを同時にプロットできる.)

【グラフの再描画】 なお,グラフをファイルに保存している場合,描画条件を変更したり,データ を変更した後には,再度set outputコマンドを指定する必要がある.

gnuplot> set output "foo.svg"

これをやらないと,データが上書きされる.

【終了】 gnuplotquit命令で終了できる.

2.5 3 3.5 4 4.5 5 5.5 6 6.5 7 7.5

1 1.2 1.4 1.6 1.8 2

"foo.dat"

1 10

1 1.2 1.4 1.6 1.8 2

"foo.dat"

Fig.1 Fig.2

1 10

1 1.2 1.4 1.6 1.8 2

"foo.dat"

1 10 100

1 1.2 1.4 1.6 1.8 2

"foo.dat"

"bar.dat"

Fig.3 Fig.4

5. gnuplot

でグラフを作成する

(2)

次のデータの第1列と第3列と使ってグラフを描画することを考える.

10 2.5937424601000023e+00 1.2453936835904278e-01 100 2.7048138294215294e+00 1.3467999037515721e-02 1000 2.7169239322355985e+00 1.3578962234466196e-03 10000 2.7181459268248984e+00 1.3590163414667344e-04 100000 2.7182682371922948e+00 1.3591266750268005e-05 1000000 2.7182804690959363e+00 1.3593631087438496e-06 10000000 2.7182816941320103e+00 1.3432703482862962e-07 100000000 2.7182817983463599e+00 3.0112685234229275e-08 1000000000 2.7182820520118995e+00 2.2355285445030404e-07 10000000000 2.7182820532331595e+00 2.2477411443233564e-07

(4)

このためには,

gnuplot> plot "foo.dat" using 1:3 with lines

とする. すなわち, plot命令に using 1:3によって, データの第1列と第3列を使ういう指示を 与える.

6. gnuplot

で関数のグラフを作成する

【三角関数のグラフの描画】 sin(x)のグラフを表示するには次のように入力する. (See Fig.5)

gnuplot> plot sin(x)

【対数グラフ上で e/x を描画】 (See. Fig.6)

gnuplot> set logscale

gnuplot> set xrange [1:1.0E+5]

gnuplot> plot exp(1.0)/x

ここでxrangeとは,描画する独立変数xの値の範囲を指定するコマンドであり,xrange [1:1.0E5]+

では1≤x≤1.0×105の範囲で描画することを指定している.

【対数グラフ上で e(1/x+ 0.0001x)を描画】 (See Fig.7)

gnuplot> set logscale

gnuplot> set xrange [1:1.0E+5]

gnuplot> plot exp(1.0)/x, 1.0E-4*exp(1.0)*x, exp(1.0)(1/x + 1.0E-4*x)

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-10 -5 0 5 10

sin(x)

0.0001 0.001 0.01 0.1 1 10

1 10 100 1000 10000

exp(1.0)/x

Fig.5 Fig.6

1e-05 0.0001 0.001 0.01 0.1 1 10 100

1 10 100 1000 10000 100000

exp(1.0)/x 1.0E-4*exp(1.0)*x exp(1.0)*(1/x + 1.0E-4*x)

Fig.7

(5)

● その他

gnuplot

の便利な使い方など

gnuplotを用いてグラフを作成するために毎回gnuplotのコマンドを入力するは非常にめんど

うである. これを楽にするために,あらかじめgnuplotのコマンド列を書いたファイルを用意して,

それをgnuplotへの入力とすることができる.

1. gnuplot

のスクリプトファイルの作成

(たとえば)sample1.gpltというファイル名で以下のようにgnuplotのコマンド列を書いた ファイルを作成する.

set terminal postscript eps color set output "sample1.eps"

set logscale

set xrange[1:10E+10]

plot "sample1.dat" using 1:3 with lines

これは,データファイルsample.datの内容を,このファイルに書かれたコマンド列にしたがって

sample1.epsに出力する. (必要に応じて,データファイル名,出力ファイル名などを書き換えれ

ばよい)

このスクリプトファイルを利用するには,

gnuplot < sample1.gplt

として, redirectを利用して gnuplotに送り込めば良い.

2.

初期設定ファイルの作成

以下の1行だけを書いたファイルを, ホームディレクトリ(ホームフォルダ)直下に.gnuplot として保存する. (ファイル名の先頭に“.” がついていることに注意)

set terminal aqua

これにより,特に指定しない限り,初期設定ではgnuplotaqua形式でファイルを出力する.

3.

3次元グラッフィックスの描画

gnuplotは3次元グラッフィックスも描画可能である. たとえば, [0,4π]×[0,4π]上でf(x, y) = cos(x)sin(y)のグラフを描画するには,

0.00e+00 0.00e+00 +0.000000e+00 0.00e+00 1.00e-01 +9.983342e-02 ....

0.00e+00 1.25e+01 -6.632190e-02

1.00e-01 0.00e+00 +0.000000e+00 ...

1.25e+01 1.25e+01 -6.617588e-02

(6)

という, (x, y, f(x, y))の形のデータを用意する. x座標値が変化するところで空行が入っているこ とに注意. (この空行が無いときちんと描画してくれない)

set terminal postscript eps color set output "3d_1.eps"

splot "3d.result" title "" with l

0 2 4

6 8

10 12 14 0 2

4 6

8 10

12 14 -1

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

set terminal postscript eps color set output "3d_2.eps"

set contour set nosurface set view 0,0

set cntrparam levels 10 unset key

splot "3d.result" title "" with l

0 2 4 6 8 10 12 14 0

2 4 6 8 10 12 14

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

set terminal postscript eps color set output "3d_3.eps"

set pm3d map

splot "3d.result" title ""

0 2 4 6 8 10 12 14

0 2 4 6 8 10 12 14

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

● 参考

URL

1. gnuplot公式ページ:http://www.gnuplot.info/

2. その他のgnuplotに関連する日本語ページで有益なのはいかにあげるもの.

(a) http://ayapin.film.s.dendai.ac.jp/~matuda/Gnuplot/gnuplot.html (b) http://t16web.lanl.gov/Kawano/gnuplot/

参照

関連したドキュメント

が前スライドの (i)-(iii) を満たすとする.このとき,以下の3つの公理を 満たす整数を に対する degree ( 次数 ) といい, と書く..

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

子どもが、例えば、あるものを作りたい、という願いを形成し実現しようとする。子どもは、そ

高(法 のり 肩と法 のり 尻との高低差をいい、擁壁を設置する場合は、法 のり 高と擁壁の高さとを合

携帯電話の SMS(ショートメッセージサービス:電話番号を用い

【現状と課題】

○事業者 今回のアセスの図書の中で、現況並みに風環境を抑えるということを目標に、ま ずは、 この 80 番の青山の、国道 246 号沿いの風環境を

VREF YZのQRは Io = 30 mA になりま す。 VREF ?を IC のでJKする./、QR のæç でJKするような èとしてGさ い。をéえるQRとした./、