GNUPLOT

gnuplotは http://www.gnuplot.info/ から入手できる,
フリーの汎用グラフ作成ツールです.
 
gnuplotでは,グラフ作成のための独自の言語の言語を使うことができ,
簡単なプログラミングによって2次元あるいは3次元の高度なグラフを表示したり,
それを画像ファイルとして保存することができます.
 
その他,数値で表現された座標データ(CSVデータなど)を読み込んでプロットすることもできます.
 
ここでは gnuplot の使用方法の最も簡単な方法を紹介します.
 
 
【gnuplotの起動】
 gnuplotは独立した1つのアプリケーションプログラムです.
作図に先立って gnuplot を起動しておきます.
 
UNIX系の OS ではコマンド gnuplot を発行することで起動します.
Microsoft Windows や Apple Macintosh ではアプリケーションのアイコンをダブルクリックして起動することができます.
 
 gnuplot 起動後は独自のコマンド対話処理を行って作図します.
例えば,作図を実行するコマンドに plot コマンドがあり,必要な引数を与えてコマンドを発行することでグラフが描画されます.
 
 
【2次元のプロット】
方法1: plot 描画する関数
例1:  plot sin(x)
作図例1: gnuplt01
 
 
複数の関数を同一の平面にプロットする場合は,コンマ ‘,’ で複数の関数を区切って記述します.
 
方法2: plot 関数1, 関数2, 関数3, …
例2:  plot sin(x),cos(x),tan(x)
作図例2: gnuplot01_2
 
 
【3次元のプロット】
3次元のグラフを作成するには splot コマンドを使います.
 
方法3: splot 関数
例3:  splot cos(sqrt(x*x + y*y))
作図例3: gnuplt3d_1
 
もう少し見やすくするために,プロット数を増やします.
そのためには次のようなコマンドを入力します.
 
set isosamples 100
 
このコマンドの後に,再度 splot コマンドを実行するとつぎのような表示になります.
gnuplt3d_2
 
グラフ面の裏表を区別する(不透過)形でプロットするには,
set hidden3d
とコマンド入力します.これで再度プロットすると次のような表示になります.
gnuplt3d_21
更に,高さのレベル(Z軸の値)で色分けしたい場合は,
set pm3d
とコマンド入力します.これで再度プロットすると次のような表示になります.
gnuplt3d_22
グレー階調(モノクロ)で高さをグラフを表すには,
set palette gray
とコマンド入力します.これで再度プロットすると次のような表示になります.
gnuplt3d_23
 
 
【データファイルを読み込んでグラフを作成する方法】
 gnuplotでは,データファイルを読み込んでグラフを作成することもできます.
プロットするためのデータは,座標データです.例えば次のようなCSVデータがあったとします.
sin_csv
これは正弦関数の定義域(x座標)と値域(y座標)を各行に格納したデータファイル “sin.csv” の例です.
 
このデータを読み込んでプロットするには gnuplot が起動している状態で,
コマンド plot “sin.csv” と入力します.この操作により次のようなグラフができます.
sin_csv_pic
線でプロットしたい場合は plot “sin.csv” with line というように with line をコマンドに追加します.実行すると次のようになります.
sin_csv_pic_line
更に “linewidth N”(Nはポイント数)を付けることでプロットする線の太さを指定することもできます.例えば plot “sin.csv” with line linewidth 8 として描画すると次のようになります.
sin_csv_pic_line8p
 
複数のデータファイルを読み込んで同一のグラフ平面にプロットするには,
ファイル名などをコンマ ‘,’ で区切って並べます.例えば
plot “sin.csv” with line, “cos.csv” with line ,”tan.csv” with line
として作図すると次のようになります.
sin_cos_tan_1
(データファイル: sin.csvcos.csvtan.csv
この例では各グラフの特徴がわかりづらいので,描画範囲を指定したほうが良いです.
例えば,
 定義域(x座標)の範囲: 0.0 〜 6.28
 値域(y座標)の範囲:  -3.0 〜 3.0
とするには gnuplot の変数 xrage と yrange にそれらを設定します.
具体的には
  set xrange [0:6.28]
  set yrange [-3.0:3.0]
とします.これで再度プロットしたものが次の例です.
sin_cos_tan_2
グラフ中に座標軸(ゼロの軸)を描画するには set zeroaxis コマンドを実行します.
例.set zeroaxis linetype -1 linewidth 0.5
これで再度描画すると次のようになります.
sin_cos_tan_3
これに加えて,座標軸に目盛りを付けるには次のようなコマンドを実行します.
set xtics axis 1
これで再度描画すると次のようになります.
sin_cos_tan_4
グラフエリアに格子を表示するには set grid コマンドを実行した後に描画します.
描画例:sin_cos_tan_5
描画領域の縦横の比率を変えるには set size コマンドを実行します.
例.set size 0.5, 1.0 を実行した後での描画
sin_cos_tan_6
 
 
3次元座標データを読み込んで3次元グラフにすることもできます.
例: “gnuplt02.csv
set hidden3d
set pm3d
splot “gnuplt02.csv” with line
表示例:gnuplt3d_3

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)