gnuplot

  • Text 下巻P.224

準備

  • EasyPackageより, math/gnuplot と,graphics/aquaterm をインストールすること.
    • aquatermをデフォルトのgnuplot出力ウィンドウするために,".tcshrc"に .bash, .zshrcの場合
      export GNUTERM=aqua
      .tcshrcの場合
      setenv GNUTERM aqua
      を追加しておくといいです.
      • 注 ほかに
        set terminal x11
        set terminal dumb
        set terminal jpeg
        set output "out.png"
        などがあります.
  • X11環境がない場合
  • http://xquartz.macosforge.org/landing/

gnuplotとは

  • gnuplotとは,対話的に2次元,もしくは3次元のグラフを描くアプリケーションです. グラフは,関数(x2やsin(x)など)の他に,実験データーなどの離散的な数値も 描くことができます.
  • また,CやBASIC,fortranなどの言語で使用できる式をそのまま入力でき,三角関数から ベッセル関数まで沢山の関数が用意されおり,さらに自分で関数の定義もできます.

gnuplotの起動と終了

コマンドプロンプトが出ている状態で,

% gnuplot

と入力するとgnuplotが起動します. メッセージが表示された後プロンプトが

gnuplot>

に変わります.

gnuplot> help

とすることでヘルプを表示することができます. gnuplotを終了するには,

gnuplot> quit
gnuplot> exit

のように,quitやexitと入力することで終了できます.

グラフの描画

書式:

 plot {範囲} {<関数> | 
             {"<データファイル>" {using ...}}}
             {表題}{スタイル}
             {,<関数> {表題} {スタイル}...}

gnuplot> plot x
gnuplot> plot sin(x)
gnuplot> plot x*x

gnuplot> plot "pulse.dat"

と,入力することで描画できます.

ここで,データファイルは,次のようにx,yの順で記録しておくか,

1  0.4988939
2  0.4830083
3  0.4121865
4  0.3372366

連続したデータの場合は,最初のxの値を省略して,

0.4988939
0.4830083
0.4121865
0.3372366

と記録しておく必要があります.

ただし,デフォルトではデータを点で表示しますが,オプション指定することに より,点と点とを繋いで折れ線グラフとして描画することができます.

gnuplot> plot "pulse.dat" with line

その他にも,linespoint,dots,boxesなど指定できます.

またグラフの表示範囲を変更するには,plotの最初の引数で与えます.

gnuplot> plot [0:256]"pulse.dat" with line
  • こうすると、xを0から256まで変化させた時のpulse.datのグラフが 描かれます.y軸の範囲を定めるには,x軸上の範囲の次に続けて書きます.
     gnuplot> plot [0:256][-0.8:0.8]"pulse.dat" with line
    また,対数グラフにしたいときは,
    gnuplot> set logscale 軸名

x軸とy軸を両方対数スケールにする場合は,

gnuplot> set logscale xy

とします.

課題2

  • 次のスクリプトをplot.shという名前で保存しなさい.
  • numは,自分のアカウント名とすること.
  • このスクリプトを実行すると,gnuplotより,数式グラフ画像が保存される.
    Expand allFold all
      1
      2
      3
      4
      5
      6
      7
      8
      9
    
    -
    !
     
     
     
     
     
     
     
    
    #!/bin/sh
    num=e1457XX
    echo "set terminal jpeg" > $num.gplot
    echo "set output \"$num.jpeg\"" >> $num.gplot
    echo "set xrange [-2:2]" >> $num.gplot
    echo "set yrange [-2:2]" >> $num.gplot
    echo "set isosample 40,40" >> $num.gplot
    echo "splot x*x*exp(-x*x)*y*y*exp(-y*y)" >> $num.gplot
    gnuplot < $num.gplot
  1. 上記スクリプトを引用し,各行説明しなさい.
  2. 別なグラフを出力するよう上記スクリプトを改変しなさい.人と違ったグラフ(数式)を使うこと. (新スクリプトは,レポート内に書くこと.添付してはいけない.)
  • レポートはPDF形式とし,ファイル名を"アカウント名_2.pdf"となさしなさい.
  • ファイル名(例): e145701_2.pdf)
  • 締め切り:7月4日正午
  • 提出先:

すばらしいの解説ページ



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-07-01 (火) 14:53:14 (1905d)