gnuplot

  • グラフ描画ソフト
    • 2次元だけでなく、3次元プロットも可能
  • 読み方は「ニュープロット」らしい…
  • 様々な OS で利用可能 (それぞれの OS 用のプログラムが開発されている)
  • Excel のグラフ作成機能でもいいけど、こちらのほうが高機能
    • 関数を描画可能
    • バッチファイルを作ってしまえば、グラフのスタイルを維持したまま、データを差し替えることができる

基本コマンド

  • plot <データor関数> with <グラフタイプ> [オプション] [, <データor関数> with <グラフタイプ> [オプション] …]
    • 二次元グラフを描画
    • 複数のグラフを書く場合は、, で区切る
    • <データor関数> にはデータが入っているファイルのパスか、関数を指定する
      • ファイルのパスは (ダブルクォーテーション) で囲まないとエラーになる
      • 関数の例
        • x: y = x
        • x ** 2: y = x2
        • sin(x): y = sin x
    • with <グラフタイプ>
      • withw に省略可
      • グラフのプロットタイプ (線、点、棒グラフなど) を指定
        • line
          • 線でプロット
          • l に省略可
        • dots
          • 点でプロット
          • d に省略可
        • points
          • 大きめの点でプロット
          • p に省略可
    • [オプション]
      • linewidth or lw: 線の太さ
      • linestyle or ls: 線のスタイル (事前に定義が必要)
      • linecolor or lc: 線の色
        • デフォルトの色定義から数字で指定する
        • 特定の色を指定したい場合は linecolor rgb ”#9AFF23“ のように rgb の後に、16進数による色の指定をする
        • 他のグラフのタイプでも色の設定は linecolor を使う
      • pointtype or pt: 大きめの点の種類 (数字で指定)
      • pointsize or ps: 大きめの点の大きさ
      • title: 凡例用のラベルを指定
        • plot sin(x) title
      • using or u: データを指定した場合、何番目のデータを使うかを指定
        • 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 or i: 同一ファイル内にあるデータの何番目を使うかを指定
        • 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番目としてプロット

二次元マップ

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

二次元マップのカラーバーの位置の調整

目盛りの長さを設定する

  • 全体 (x軸、y軸、z軸、カラーバー) の目盛りの長さの設定
    set ticscale <大目盛りの長さ> [小目盛りの長さ]
  • 特定の軸のみ目盛りの長さを設定 (scale オプションを使う)
    • x軸
      set xtics scale <大目盛りの長さ> [小目盛りの長さ]
    • y軸
      set ytics scale <大目盛りの長さ> [小目盛りの長さ]
    • z軸
      set ztics scale <大目盛りの長さ> [小目盛りの長さ]
    • カラーバー
      set cbtics scale <大目盛りの長さ> [小目盛りの長さ]

対数スケール

その他