基礎情報処理演習(地球工学科1回生T2クラス)

gnuplotによるグラフの作成 (第10章)


今日の目標


gnuplotとは

gnuplot は、関数やデータを2次元または3次元プロットするための便利なツールです。 組み込み関数を使って自分でグラフを作成することもできますし、 実験データや観測データを簡単にグラフにすることができます。 gnuplotもフリーソフトで、WindowsやMachintoshにも移植されています。

gnuplotのコマンド

plot 2次元の関数やデータをプロットする
splot 3次元の関数やデータをプロットする
replot 前のプロット(plot, splot)を再現する
set グラフの環境を設定する
save プロットや環境をセーブする
load セーブしたファイルをロードする
help ヘルプを参照する

今日の演習

2次元のプロット

教科書 10.3.1 「gnuplotによるグラフの作成」と 10.4 の「gnuplot入門」をよく読んで gnuplot の基本操作を学んで下さい。

  1. GNOME端末でgnuplotを起動する。 gnuplotの後に&は付けないで下さい。
     bash 3.00$ gnuplot
  2. y=x*x-3 をプロットします。
     gnuplot> plot x*x-3
  3. y=-2*x を重ねてプロットします。
     gnuplot> plot x*x-3, -2*x
  4. それぞれの曲線にキーを付けます。(gnuplotではプロットした関数やデータに付ける名前のことをキーと言います。)
     gnuplot> plot x*x-3 title "type A", -2*x title "type B"
  5. xの範囲を-5から+5にします。
     gnuplot> set xrange [-5:5]
  6. 更新した内容を表示させるためには、replotを使います。
     gnuplot> replot

    注意:なお、plotコマンドでは[]を用いて範囲を指定することができます。 例えば、4.と5. は次のようにまとめることができます。

     gnuplot> plot [-5:5] x*x-3 title "type A", -2*x title "type B"
  7. x軸にラベル"Time[s]"を付けます。 x軸の下にラベルが付いていることを確認します。
     gnuplot> set xlabel "Time [s]"
     gnuplot> replot
  8. y軸にラベル"Distance [m]"を付けます。
     gnuplot> set ylabel "Distance [m]"
     gnuplot> replot
  9. タイトルを付けます。
     gnuplot> set title "motion"
     gnuplot> replot
  10. このグラフと環境設定をファイルに保存します。 ファイルの最後には".gp"や".gnu"など、gnuplotのファイルであることが分かるように拡張子を付けてください。
     gnuplot> save "gn1.gp"
  11. 一度gnuplotを終了します。
     gnuplot> exit
  12. もう一度gnuplotを起動し、9.で保存したグラフを読みこみます。
     gnuplot> load "gn1.gp"

    注意:セーブコマンド(save)はプロットや環境を保存するだけで、 画像ファイルではありません。

    保存したグラフがきちんと表示されたでしょうか?うまくできた人は下のようなグラフが表示されるはずです。 作りかけのグラフもこのように保存すれば、次回途中から始められます。うまくできなかった人はもう一度1からやり直してきちんと保存できるようにしましょう。

    gnuplotsample1

ヒント

3次元のプロット

  1. GNOME端末でgnuplotを起動します。 すでに起動している場合は前の環境をリセットします。
     gnuplot> reset
  2. 3次元のグラフを表示します。
     gnuplot> splot sin(sqrt(x**2+y**2))/sqrt(x**2+y**2)
  3. サンプルの細かさを変更します。
     gnuplot> set isosample 30
     gnuplot> replot
  4. 隠線処理を行います。
     gnuplot> set hidden3d
     gnuplot> replot
  5. タイトルを入力します。
     gnuplot> set title "Sample of 3D-plot"
     gnuplot> replot
  6. グラフ、環境をセーブします。
     gnuplot> save "3D-plot.gp"
  7. グラフをポストスクリプトファイルに保存します。
     gnuplot> set terminal postscript
     gnuplot> set output "3D-plot.ps"
     gnuplot> replot
  8. gnuplotを終了します。
     gnuplot> exit
  9. 出力したポストスクリプトファイルを確認します。
     bash 3.00$ ggv 3D-plot.ps &

今日の課題

下のグラフにある鉛直投げ上げ運動の図をgnuplotで描写し、 それをプリントアウトして提出して下さい。

gnuplotsample3

ヒント


プリンタ出力の提出をもって出席とします。 したがって、途中までしかできていない場合でも、プリンタに出力して提出して下さい。 出力できない者は口頭で申し出で下さい。 時間内にできなかった場合、来週の演習時間までに完成させて演習開始時に提出して下さい。


おまけ

課題が終わってしまった人は、トライしましょう。 (提出すると課題点にボーナスがつきます)。 提出する際は氏名、学生番号を書いて課題とは別紙にして下さい。


次週までに


戻る