いちからはじめる GMT その8 - psxy -W

2008年 11月 1日 掲載


今回の例は,結城浩著「数学ガール」から採りました.


たくさんの描画を重ねることができるようになったので, たくさんの関数を一枚の図に描いてみよう.

今回は,正弦曲線 sin(x) と, それをテイラー展開した近似式を図化してみる.

sin(x) のテイラー級数(マクローリン級数)は,

だから,1,3,5次の近似式 f1(x), f3(x), f5(x) は,

である.これを図化してみる.

計算と描画が多いので,シェルスクリプトを書こう.

#!/bin/sh

awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, sin(x)}'          > sin.txt
awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, x}'               > f1.txt
awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, x-x^3/6}'         > f3.txt
awk 'BEGIN{for(x=-7;x<=7;x+=0.1) print x, x-x^3/6+x^5/120}' > f5.txt

psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps
psxy f1.txt -R -J -O -K >> sin.eps
psxy f3.txt -R -J -O -K >> sin.eps
psxy f5.txt -R -J -O    >> sin.eps

実行すると,こういう図↓ができる.

正弦曲線と近似式

sin(x) と f1(x) は,まあ判別できるが, f3(x) と f5(x) は,つながって見えてわかりにくい. そこで,線の太さをかえてみることにする. psxyコマンドでは -Wオプションで,線の太さを指定できる. f5(x) の線の太さを 5 にしてみよう(指定がない場合は 1 になる).

#!/bin/sh

psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps
psxy f1.txt -R -J -O -K  >> sin.eps
psxy f3.txt -R -J -O -K  >> sin.eps
psxy f5.txt -R -J -W5 -O >> sin.eps

正弦曲線と近似式(f5を太線)

少しはわかりやすくなったかな. -Wオプションに「,」でつづけて色も指定できる.

#!/bin/sh

psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps
psxy f1.txt -R -J -W5,black -O -K >> sin.eps
psxy f3.txt -R -J -W5,red  -O -K  >> sin.eps
psxy f5.txt -R -J -W5,blue -O     >> sin.eps

正弦曲線と近似式(カラー)

f1(x) を black,f3(x) を red,f5(x) を blue にしてみた. 色名は /usr/X11R6/lib/X11/rgb.txt にあるものが使える. RGB各色を 255階調で「/」で区切って指定することもできる.

#!/bin/sh

psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -K > sin.eps
psxy f1.txt -R -J -W5,0/0/0   -O -K >> sin.eps
psxy f3.txt -R -J -W5,255/0/0 -O -K  >> sin.eps
psxy f5.txt -R -J -W5,0/0/255 -O     >> sin.eps

black,red,blue で指定した場合と同じ図ができる.

図をモノクロで入稿しなくてはならない場合もあるだろう. GMT では,線種を「-」「.」で指定することができる.

「-」「.」の組合せで,いろいろなパターンを好きなように作れる.

以下の例では,sin(x) を点線,f1(x) を一点破線, f3(x) を破線,f5(x) を実線で描画している.

#!/bin/sh

psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -W5,. -K > sin.eps
psxy f1.txt -R -J -W5,-. -O -K >> sin.eps
psxy f3.txt -R -J -W5,-  -O -K >> sin.eps
psxy f5.txt -R -J -W5    -O    >> sin.eps

正弦曲線と近似式(線種)

色と線種を同時に指定することも,もちろんできる. 線の太さ,色,線種を「,」で区切って指定する.

#!/bin/sh

psxy sin.txt -R-6.5/6.5/-6.5/6.5 -Jx1 -W5,black,. -K > sin.eps
psxy f1.txt -R -J -W5,black,-. -O -K >> sin.eps
psxy f3.txt -R -J -W5,red,-    -O -K >> sin.eps
psxy f5.txt -R -J -W5,blue     -O    >> sin.eps

正弦曲線と近似式(色と線種)

これは,ちょっとやりすぎかな?


[ KDOホームにもどる ] [ いちからはじめる GMT インデックスにもどる ]


(C) 2008 KDO