gnuplot

  • Text 下巻P.224

インストール

AquaTerm

Homebrewからインストール

$ brew cask install aquaterm 

または,

X11

Gnuplotのインストール

% brew install gnuplot --with-aquaterm --with-x11 --pdf 
  • aquatermをデフォルトのgnuplot出力ウィンドウするために,
    .bash, .zshrcの場合
    export GNUTERM=aqua
    .tcshrcの場合
    setenv GNUTERM aqua
    を追加しておくといいです.
    • 注 ほかに
      set terminal x11
      set terminal dumb
      set terminal jpeg
      set output "out.png"
      などがあります.

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

とします.

test.gplot

set terminal png
set output "sample.png"
set xrange [-2:2] 
set yrange [-2:2] 
set isosample 40,40 
splot x*x*exp(-x*x)*y*y*exp(-y*y)
$ gnuplot < test.gplot

課題

  • 次のシェルスクリプトをplot.shという名前で保存しなさい.
  • numは,自分のアカウント名とすること.
  • このスクリプトを実行すると,gnuplotより,数式グラフ画像が保存される.
    $ sh plot.sh

plot.sh

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
-
!
 
 
 
 
 
 
 
#!/bin/sh
num=e1857XX
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形式とし,ファイル名を"アカウント名.pdf"となさしなさい.
  • ファイル名(例): e175701.pdf)
  • 提出先:Google Classroom
  • 締め切り:6月7日14:40

すばらしいの解説ページ



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-06-06 (水) 11:57:44 (530d)