gnuplot
概要
- グラフ描画ソフト
- 2次元だけでなく、3次元プロットも可能
- 読み方は「ニュープロット」らしい…
- 様々な OS で利用可能 (それぞれの OS 用のプログラムが開発されている)
- Excel のグラフ作成機能でもいいけど、こちらのほうが高機能
- 関数を描画可能
- バッチファイルを作ってしまえば、グラフのスタイルを維持したまま、データを差し替えることができる
グラフ
基本コマンド
plot <データor関数> with <グラフタイプ> [オプション] [, <データor関数> with <グラフタイプ> [オプション] …]
- 二次元グラフを描画
- 複数のグラフを書く場合は、
,
で区切る <データor関数>
にはデータが入っているファイルのパスか、関数を指定する- ファイルのパスは
“
(ダブルクォーテーション) で囲まないとエラーになる - 関数の例
x
: y = xx ** 2
: y = x2sin(x)
: y = sin x
with <グラフタイプ>
with
はw
に省略可- グラフのプロットタイプ (線、点、棒グラフなど) を指定
line
- 線でプロット
l
に省略可
dots
- 点でプロット
d
に省略可
points
- 大きめの点でプロット
p
に省略可
[オプション]
linewidth
orlw
: 線の太さlinestyle
orls
: 線のスタイル (事前に定義が必要)linecolor
orlc
: 線の色- デフォルトの色定義から数字で指定する
- 特定の色を指定したい場合は
linecolor rgb ”#9AFF23“
のようにrgb
の後に、16進数による色の指定をする - 他のグラフのタイプでも色の設定は linecolor を使う
pointtype
orpt
: 大きめの点の種類 (数字で指定)pointsize
orps
: 大きめの点の大きさtitle
: 凡例用のラベルを指定- plot sin(x) title
using
oru
: データを指定した場合、何番目のデータを使うかを指定using 1:3
は以下のデータの 1 番目 (1,2,3,…) と 3 番目 (0.1, -3.3, -5.6, …) の列のデータを使う
1 14.3 0.1 2 22.1 -3.3 3 33.5 -5.6 : : :
index
ori
: 同一ファイル内にあるデータの何番目を使うかを指定- C 言語の配列のように、0 から始まる数字を指定する
index 0
は以下のデータの最初のデータ (1番目の列が 1,2,3) を使い、index 2
では 3 番目のデータ (1番目の列が21,22,23) を使う
1 14.3 2 22.1 3 33.5 11 14.3 12 22.1 13 33.5 21 14.3 22 22.1 23 33.5
- 各データは 2 つの空行で区切る
splot <データor関数> with <グラフタイプ> [オプション] [, <データor関数> with <グラフタイプ> [オプション] …]
- 三次元グラフを描画
- 基本的には
plot
と同じ
特殊なグラフ
ヒストグラム
set style data histogram set style histogram rowstacked set style fill solid border rgb "black" set style line 1 lc rgb "red" lw 1 set style line 2 lc rgb "blue" lw 1 p "データ" u 2:xticlabel(1) w histograms fs solid ls 1, "" u 4 w histograms fs solid ls 2
set style data histogram
: ヒストグラム形式でデータを扱うset style histograms rowstacked
: 下から積み上げset style histograms clustered
: 同じ X 軸のデータを横に並べるset style fill solid border rgb “black”
: 棒グラフの枠線の色set style line 1 lc rgb “red” lw 1
: 積み上げ1番目のデータは赤色set style line 2 lc rgb “blue” lw 1
: 積み上げ2番目のデータは青色- plot 行について
- 最初の
u: xticslabel(1)
を軸のデータとして、2番目のデータを積み上げ1番目としてプロット - 次のプロット: 4 番目のデータを積み上げ2番目としてプロット
- 参考サイト: 棒グラフ: gnuplotで棒グラフを書く - 米澤進吾 ホームページ
二次元マップ
set pm3d map corners2color c1 set ticslevel 0 set cbrange [-10:10] set palette defined (-10 "red", 0 "white", 10 "blue") set xrange [-10:10] set yrange [-10:10] set xtics 1 mirror set ytics 1 mirror set cbtics 1 set xlabel "Foo" set ylabel "Bar" set cblabel "Hoge" set size ratio 1 set size 1.05 set lmargin 0 set rmargin 0 set tmargin 0 set bmargin 0 set origin -0.03,-0.03 unset grid unset key splot "hoge.dat" w pm3d
Tips
二次元マップのカラーバーの位置の調整
set colorbox vertical user origin x,y size w,h
目盛りの長さを設定する
- 全体 (x軸、y軸、z軸、カラーバー) の目盛りの長さの設定
set ticscale <大目盛りの長さ> [小目盛りの長さ]
- 特定の軸のみ目盛りの長さを設定 (scale オプションを使う)
- x軸
set xtics scale <大目盛りの長さ> [小目盛りの長さ]
- y軸
set ytics scale <大目盛りの長さ> [小目盛りの長さ]
- z軸
set ztics scale <大目盛りの長さ> [小目盛りの長さ]
- カラーバー
set cbtics scale <大目盛りの長さ> [小目盛りの長さ]
対数スケール
- 軸を対数スケールにする
set logscale AXIS [BASE]
AXIS
: 対数スケールにする軸 (x
,y
,xy
)BASE
: 対数の基数
- 参考サイト: gnuplotコマンド集 - 対数スケール
背景色を設定する
- 背景オブジェクトを設定する。
set object 1 rect behind from screen 0,0 to screen 1,1 fc rgb "#000000" fillstyle solid 1.0
#000000
を 16進数のカラーコードで設定する。
- 参考サイト: gnuplotで背景色を黒にする - みやびの備忘録
その他
- デフォルトの線を変更: 簡単GNUPLOT
- スムーズカーブと値のラベル: gnuplot / plot (7)
- ラベルの位置: gnuplotでグラフに文字を書く - 米澤進吾 ホームページ