gnuplot

gnuplot

 gnuplotは 2次元、3次元のグラフを作成するソフトで、高機能でしかもフリーです。数値計算の結果や実験データをグラフで表示するときに役立ちます。

 「gnuplot ホームページ」からダウンロードできます。sample も豊富にありいろいろ参考になります。最新バージョンでは日本語表記、動画での表示、繰り返し処理などが可能になっています。日々バージョンアップされているので、最新版をおすすめします。

 gnuplot を起動すると下のような画面が表示されます。現バージョンでは日本語表記が可能ですがが、旧バージョンでは英語表記のみでした。

gnuplot> の後に次のようにコマンドを打ち込むと図が表示されます。

plot sin(x)
plot sin(x)+sin(10*x)

のように関数も表示できます。デフォルトではサンプル数が x 方向に100点と少ないのでカクカクしています。滑らかにするためにはサンプル数を多くする必要があります。

サンプル数を大きくすると滑らかに表示されます。

set samples 10000
plot sin(x)+sin(10*x)

関数を定義することもできます。

reset
set samples 10000
set xrange [-100:100] # xの範囲指定
set yrange [-2.5:2.5] # yの範囲指定
f(x)=sin(x)+sin(1.1*x) # 定義した関数
plot f(x)

動画も表示できます。

reset
set ter win
set samples 1000
set xrange [-100:100]
set yrange [-5:5]
do for [i = 0:200 ] {
   t=i*0.5
   plot 0.5*sin(x-t)+3 lc rgb "red" lw 2,\
        0.5*sin(1.1*x-t)+1 lc rgb "blue" lw 2,\
        0.5*sin(x-t)+0.5*sin(1.1*x-t)-2 lc rgb "black" lw 2
   pause 0.01
}
reset
set ter win
set title "sphere"
set xrange [-5:5]
set yrange [-5:5]
set zrange [-3:3]
set dummy u,v
set angles degrees
set parametric
set view equal xyz
set view 60,136,2,2
set isosamples 24,24
unset xtics
unset ytics
unset ztics
set border 0
set urange [-90.0: 90.0] noreverse nowriteback
set vrange [  0.0:360.0] noreverse nowriteback
set hidden nooffset
r1=1
r2=2
do for [i=1:180]{
    splot r1*cos(u)*cos(v-2*i)+2*r2*cos(4*i),r1*cos(u)*sin(v-2*i)+2*r2*sin(4*i),\
    r1*sin(u) notitle with lines lt 5 lc rgb "blue",\
    r2*cos(u)*cos(v+0.5*i),r2*cos(u)*sin(v+0.5*i),r2*sin(u) notitle with lines lt 5 lc rgb "red"
}