2001年度前期数理解析・計算機数学(第11回・2001年6月27日) 1
gnuplot
の利用法数値計算結果をグラフで表現する場合にgnuplotと呼ばれるツールを利用することが多い.
例えば,次のプログラムはy = expxの値をx= 1.0からx= 2.0まで,0.1刻みにxとexp(x)の値を空 白で区切って出力する.
#include <stdio.h>
#include <math.h>
#define EP 1.0E-7 int main()
{
double x ;
for(x=1.0;x<2.0+EP;x+=0.1)
printf("%f %f\n", x, exp(x)) ; return 0 ;
}
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を利用してこれを図示する方法を考 える.
gnuplot
の起動gnuplotはコマンド名gnuplotで起動できる.gnuplotを起動すると,次のように表示される.
Terminal type set to ’x11’
gnuplot>
gnuplot
でグラフを作成するファイルに保存したデータをグラフとして表示するには,次のように入力する.ここで,foo.datがグラフ を作成するための元となるデータが入ったファイルである.
gnuplot> plot "foo.dat" with lines
これによって得た結果がFig. 1である.
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"
Figure 1 y軸を対数目盛りにするためには,
(By Hisashi NAITO) Id: gnuplot.tex,v 1.2 2001-06-27 07:59:37+09 naito Exp
2001年度前期数理解析・計算機数学(第11回・2001年6月27日) 2
gnuplot> set logscale y
gnuplot> plot "foo.dat" with lines
これによって得た結果がFig. 2である.
1 10
1 1.2 1.4 1.6 1.8 2
"foo.dat"
Figure 2 gnuplot> plot "foo.dat" with linespoints
とすると, Fig. 3のような結果を得る.
1 10
1 1.2 1.4 1.6 1.8 2
"foo.dat"
Figure 3 複数のデータを一つのグラフにまとめるには,
gnuplot> plot "foo.dat" with linespoints, "bar.dat" with lines
などとすればよい.
1 10 100
1 1.2 1.4 1.6 1.8 2
"foo.dat"
"bar.dat"
Figure 4 グラフをプリンタに出力する場合には,
(By Hisashi NAITO) Id: gnuplot.tex,v 1.2 2001-06-27 07:59:37+09 naito Exp
2001年度前期数理解析・計算機数学(第11回・2001年6月27日) 3
gnuplot> set terminal postscript eps gnuplot> set output "result.eps"
としてからplot命令を行うとresult.epsに結果が出力され,これはPostScriptファイルなので,lpr コマンドを用いて,lpr result.epsとすれば,結果がプリンタに出力可能になる.
gnuplotはquit命令で終了出来る.
gnuplot> quit
(By Hisashi NAITO) Id: gnuplot.tex,v 1.2 2001-06-27 07:59:37+09 naito Exp