windows

Gnuplot

Gnuplotとはグラフをつくるアプリケーションです。 理系の業界でよく使われてます。
ここは主にWindowsを使っている人向けのGnuplotのかんたんな入門のページです。

もくじ

参考

基本

起動と終了

基本的に他のアプリケーションと同じです。 まずgnuplotがインストールされたフォルダ(通常は「gnuplot」と言うフォルダ)。 その中の「bin」と言うフォルダの「wgnuplot.exe」と言うファイルががあるはずです。 これをダブルクリックすれば起動します。 すると何やらズラズラと文字が出てきて最後に

gnuplot>

とか表示されれば起動成功です。

(初めて起動するとき文字が小さいことがあります。 そのときは右クリックして「Choose Font」で文字やフォントの種類を変えれます。 ただこの設定はgnuplot終了時には消えてしまうので、文字やフォントを変えた後、「Update wgnuplot.ini」を選んで設定を残して下さい。)

終了するときは

gnuplot> quit

と打ってEnterキーを打てば終了です。ウィンドウズの閉じるボタンでももちろん終了できます。

基本的な使い方

例えばy=sin(x)のグラフを書きたい時は、

plot sin(x)

と打ちこんでEnterキーを打てばグラフが描けます。つまり、

plot <xの関数>

でグラフを書きます。四則演算(+-*/)やカッコ()、基本的な関数(下記参照)などが使えます。ただし乗数、例えばxの2乗だったら、

plot x**2

とかします。2つの関数を同時に描きたかったら、コンマで区切って、

plot <xの関数>,<xの関数>

3つ以上でも同様にコンマで区切って続けます。

3次元グラフが描きないなら、

splot <xとyの関数>

とかします。ひとつ前に描いたグラフをもう一度描きたい時は、

replot

このようにgnuplotでは基本的にキーボードをつかって命令(コマンド)を打って作業します。なお一度打ったコマンドは↑↓キーで呼び出せます。gnuplotの終了時までこの履歴は記録してくれてます。

面倒なので、これからは主に y=x のグラフで話を進めます。通常はxの所を描きたい関数に置き換えてください。

+ (足し算)+
− (引き算)-
× (掛け算)*
÷ (割り算)/
n乗x**n
√x (ルート)sqrt(x)
e の n乗exp(x)
自然対数log(x)
常用対数log10(x)
|x| (絶対値)abs(x)
n乗根x**(1.0/n)
サインsin(x)
アークサインasin(x)
ハイパボリックサインsinh(x)
アークハイパボリックサインasinh(x)
π (円周率)pi

スクリプトファイル

gnuplotも音楽や画像ファイルみたいに拡張子の関連付けで簡単に起動できます。

まず、gnuplotで打ち込むコマンドをテキストファイルに書き込みます。 例えばy=xのグラフを描きたかったら、

plot x
pause -1

というテキストファイルをメモ帳などで作ります(最後の一文はおまじない)。
適当な拡張子名(ここでは.plt)決めて、適当なファイル名で保存します(例えば、data.pltとか)。

次に作ったファイルを右クリックして

プロパティ→ファイルの種類→変更→参照

でgnuplotのインストールしたフォルダの \bin\wgnuplot.exe を選択して関連付けます。
するとダブルクリックしただけでグラフが描けてるはずです。

一度関連付けをしてしまえば描きたいグラフのテキストファイルを作って先ほど決めた拡張子で保存し、マウスでダブルクリックしただけでグラフが描けます。修正するときなどはメモ帳などから開いてください。

また複数のコマンドを使う時は順に書いていきます。 テキストファイルは上から順に実行されていきます。 また#を入れるとその文はコメントアウトされます。

コマンド
コマンド
# コメント
...
pause -1

ちなみにこのようにコンパイルしなくても実行できるテキストファイルは「スクリプトファイル」と呼ばれています。
なお、この方法だとエラーがあったときエラー箇所は特に表示されず強制終了されるだけなので注意してください。
また拡張子が他のアプリケーションとかぶってたら適当に変えてください(pltにしたのは超テキトーにつけただけ)。

gnuplotが起動中なら、wgnuolot.exeと同じフォルダにスクリプトファイルをおいて、

gnuplot> load "data.plt"

としても実行できます。

なお、これからの説明は 「pause -1」を省いて基本的にコマンドだけで説明しますが、このおまじないを忘れないで下さい。(忘れると一瞬でグラフが消えてしまします。)

設定

マーク

マークの種類

点でマークしたい時は

plot x w p

とw p を変えたい関数の後ろに入れます。w p を wiht point としてもいいです。 p(point)以外にもマークの種類は

lline
ppoint
ドットddot
線と点lplinepoint
iimpulses

などがあります。

マークの大きさ

線の幅を変えたいなら

plot x lw 5

とします。lw の後ろの数字は幅の大きさを示してます。
点の大きさを変えたいなら ps を使います。 このときは点を指定してさらにその後ろに入れます。

plot x w p ps 5
lwlinewidth
pspointsize

マークのタイプ

線の色を変えたい時は

plot x lt 3

「lt (linetype) + 番号」で変えれます。
色と番号の対応表はこちら →filecolor.html

点の形を変えたいなら、

plot x w p pt 4

とかで変えられます。 その他の形と番号の対応表はこちら →filecolor.html

ltlinetype
ptpointtype

マークのタイトル

通常右上にマークのタイトルが付きますが、例えばこれを「xxxx」に変えたかったら、

plot x ti "xxxx"

つまり「ti (title) + "タイトル名"」 で変えれます。ただし通常、日本語は使えません。

全般的な設定

全般的な設定をする時は

set <設定の内容>

とsetで設定するのが基本です。 この設定はplotの前に設定しておきます。

範囲

例えばx軸の範囲をしたいなら

set xrange [1:1.5]

とかplotの前に設定しておきます。[最小値:最大値]で指定。
y軸ならyrangeを使います。

 set yrange [1:1.5]

このようにsetのコマンドは基本的にコマンドのxをyに変えるとy軸の指定になるものが多いです。

刻幅

set xtics 0.2
set ytics 0.3

「xtics+数値」みたいに指定。細か過ぎるとえらいことになるので注意。

ラベル

軸にラベルを付けたいなら

set xlabel "x-label"
set ylabel "y-label"

つけたいラベル名を"で括って指定します。

軸線

x軸線とかを引きたい

set xzeroaxis lt -1
set yzeroaxis lt -1

ltなどで線のタイプを指定(省略可)。

グリッド

グリッドを引きたい時は、

set grid lt -1

ltなどで線のタイプを指定(省略可)。

タイトル

グラフのタイトル

  • titleと真中にでーんと入れたい時。
    set title "title"
  • titleと左に二文字、上に1文字ずらしていれたい時。
    set title "title" -2,1

マークのタイトル

  • 場所
    座標で指定するなら、
    set key 100,100
    それかおおまかに位置を指定するなら
    set key left bottom
left左側
right右側
top上側
bottom下側
outside図の右側の外
below図の下側の外
  • 行間
    行間 1.5 倍
    set key spacing 1.5

コメント

set label "comment" at first  0.1, first  0.1

firstの後の数字はそれぞれx座標y座標。

データファイル

gnuplotの得意技の一つに数値のデータファイルをグラフにすることがあります。

データファイルの形式

gnuplotが読み込めるデータファイルは形式が決まっています。 下のような形式の数値データのテキストファイルを用意して下さい(面倒な人は→ filedata.txt)。

#x  y
x1  y1 
x2  y2
x3  y3
x4  y4
…  …

上のデータファイルの場合、一列目が x (横軸) 、二列目が y (縦軸)のデータとなります。つまり、(x1,y1), (x2,y2), …のグラフができます。列の間は空白かタブを入れてください。
もしも、この形式を変えたい時は、例えば、csvファイル(コンマ区切り)だったりしたら、

set datafile separator ","

と設定しておきます。
コメント文(読み飛ばし)は#から改行までです(上の例なら一行目)。

このデータファイルに適当な名前を付けて(ここではdata.txtとします)保存して、スクリプトファイルと同じフォルダの場所(wgnuplot.exeを起動してやる時はこの実行ファイルと同じ場所)に置いてください。

データファイルのデータの列は何列あってもかまいません。ただし、やはり列と列の間は空白かタブを入れてください。同様の手順で3列のデータファイルを作って同じ場所に保存しておいてください(面倒な人は→ filedata2.txt)。 3次元グラフを書きたいときは当然3列以上になりますが、基本は変わりません。三列目がz軸になります。

以下、2列のデータファイルをdata.txt、3列のデータファイルをdata2.txtとして話を進めます。

データファイルの描き方

データファイルをグラフにする時は

plot "<データファイル名>"

でグラフが描けます。ファイル名がdata.txtなら、

plot "data.txt"

となります。

線で描きたい

点をやめて線で描きたい時は

plot "data.txt" w l

x軸とy軸に使うデータを指定したい

plot "<データファイル名>" usi <xの列の番数>:<yの列の番数>

でプロットしたいデータを指定。usiをusingとしてもOK。例えば2列目に x、1列目に y のデータを指定したいときは

plot "data.txt" usi 2:1

複数列あるデータファイルは指定しなければusi 1:2 と解釈されます。

複数のデータファイルを同時に描きたい

2つの同時に描く時は、関数と書く時と同じように、コンマで区切って、

plot "data.txt","data2.txt"

3つ以上でも同様にコンマで区切って続けます。

3次元のグラフ

これも普通の関数を描く時と同じです。

splot "data2.txt"

フィッティング

フィッティング(fitting)とは、数値データがある関数形、例えば2次関数の形をしていた時、

f(x)=a*x*x+b*x+c

a,b,cの値を最小二乗法などで具体的に求めて、数値データを関数にfit(合わせる)させて関数を求めることです。
Gnuplotはフィッティングが得意で有名です。

定数と関数の定義

フィッティングの方法を説明する前に、定数と関数の定義について説明します。
gnuplotでは定数や関数は自分で決めることもできます。

a=2
plot a*x

(x)を付ければ関数になります

f(x)=x*x+1
plot f(x)

定数を組み合わせても関数は定義できます

f(x)=a*x*x+b*x+c
a=1
b=1
c=1
plot f(x)

フィッティングの方法

最初にフィッティングをするデータファイルをスクリプトファイルと同じ場所においておきます(gnuplotを起動させて使う人はwgnuplot.exeと同じ場所)。
そしてGnuplotで、フィッティングしたい関数を定義します。 以下では、例として2次関数を考えています(sinなどの関数を使ってもできます)。

f(x)=a*x*x+b*x+c
a=1
b=1
c=1

a,b,c には適当な初期値を与えています。
フィッティング対象のデータが 'data2.txt'の1列と2列だったとする(省略可)と、

fit f(x) "data2.txt" usi 1:2 via a,b,c

とすると、a,b,cの値が求まります。
(スクリプトファイルの人は〜.log というファイルができて、そこに書いてあります。)
初期値が悪いと収束しないことがあるので、 その場合は、初期値を変えて再実行します。 結果をグラフ化するには、

plot f(x), "data2.txt" usi 1:2

とします。これ以外の詳細は、 以下のようにしてヘルプを参照してください。

help fit

ファイルに保存

描いたグラフを画像ファイル等に保存する方法を紹介します。

psファイルで保存

例えばxxx.psで保存したい時は、まずグラフを描いた後で

set terminal postscript enhanced 
set output "xxx.ps"
replot

としてください。こうすると、xxxx.pngと言うファイルが今いるフォルダに保存されてます。
(最初の行はファイルの出力形式を、2行目はファイルの出力先指定し、最後の行でもう一度グラフをプロットしてファイルを保存しています。 ここでは出力とかのこまかい説明は面倒だしあまり意味がないので省きます。)

色つきのpsファイルにしたい時は、上の最初の行を

set terminal postscript enhanced color

とかに変えればOK。

  • 注意点
    psファイルに保存するとき、線や点のタイプが変化します。詳細はインスールしたフォルダの\docs\postscript-terminal\ps_symbols.psを見てください。 (fileps_symbols.pdf)

epsファイルで保存

epsファイルで保存したい時は

set terminal postscript eps enhanced 
set output "xxx.eps"
replot

pngファイルで保存

pngファイルで保存したい時は

set term png
set output "xxx.png"
replot

ギリシア文字と記号

psファイルに保存するときはタイトルなどでギリシャ文字や数学の記号などが使えます。
例えば、αなら

{/Symbol a}

また無限大∞は

{/Symbol \245}
  • その他の記号はインスールしたフォルダの\docs\postscript-terminal\ps_guide.psに書いてあります。(fileps_guide.pdf)

2008-11-11 富田洋

添付ファイル: filecolor.html 10件 [詳細] fileps_symbols.pdf 3件 [詳細] fileps_guide.pdf 5件 [詳細] filedata2.txt 4件 [詳細] filedata.txt 10件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-11-11 (火) 21:47:09 (0m)