三次元グラフの描画

ここでは gnuplot で三次元のグラフを描画する方法を紹介します.


関数を与えてグラフを描画する

単純に三次元のグラフを描画するには splot コマンドを以下の書式で記述します.

splot <関数>, {<関数>, ...}

複数の関数を同時に描画したい場合は","(カンマ)で区切りって指定します. gnuplotで使用可能な関数については数学ライブラリ関数をご覧下さい.

gnuplot> splot x*y

出力

三次元グラフの描画した結果

範囲を指定してグラフを描画する

範囲を指定してグラフを描画するには splot コマンドを以下の書式で記述します.

splot [<x始>:<x終>][<y始>:<y終>][<z始>:<z終>] <関数>,{<関数>,...}

gnuplot> set isosamples 50
gnuplot> f(x,y) = exp(-(x*x + y*y) / 2)
gnuplot> splot [-5:5][-5:5][0:1] f(x,y)

出力

範囲を指定して三次元グラフの描画した結果

データファイルからグラフを描画する

データファイルからグラフを描画するには splot コマンドを以下の書式で記述します.

splot "<ファイル名>", {"<ファイル名>", ...}

データファイルの1列目が x 座標,2列目が y 座標,3列目が z 座標になります.

例えば以下のようなデータ (input.dat) があったとします.

1	1	1	5
2	2	2	4
3	3	3	3
4	4	4	2
5	5	5	1

このデータファイルを読込み描画します.なお,4列目は無視されます.

gnuplot> splot 'input.dat'

出力

データファイルからグラフを描画した結果

読込む列を指定してグラフを描画する

読込む列を指定してグラフを描画するには splot コマンドに using オプションを使用します.

splot "<ファイル名>"{, ...} using <x座標>:<y座標>:<z座標>

例えば以下のようなデータ (input.dat) があったとします.

1	1	1	5
2	2	2	4
3	3	3	3
4	4	4	2
5	5	5	1

このデータファイルの2列目と3列目を読込み描画します.この場合1列目は無視されます.

gnuplot> splot 'input.dat' using 2:3:4

出力

読込む列を指定してグラフを描画した結果

描画スタイルを指定してグラフを描画する

描画スタイルを指定してグラフを描画するには splot コマンドに with オプションを指定します.

splot <関数> | "<ファイル名>" {, ...} with <描画スタイル>

<描画スタイル> に指定可能なオプションは描画スタイルをご覧下さい

gnuplot> set isosamples 50
gnuplot> f(x,y) = exp(-(x*x + y*y) / 2 * 0.1)
gnuplot> splot f(x,y) with dots

出力

描画スタイルを指定してグラフを描画した結果