まくろぐ

gnuplot: 2次元プロットの基本

更新:
作成:

関数をプロットする

Syntax
plot <expression> [with <line_style>]
  • line_style 一覧
    • lines – 線だけ (関数をプロットする時のデフォルト)
    • points – 記号だけ (ファイルのデータをプロット時のデフォルト)
    • linespoints – 線と点
例: y = 0.5x + 1
plot 0.5*x + 1
/p/ffyw55u/20040103-plot1.gif

複数の関数をプロットする

Syntax
plot <expression> [, <expression>...]

複数のグラフを重ねたい場合は、 plot の後ろにカンマ (,) で区切って関数を並べます。 一行が長くなってしまう場合は \ の次に改行すれば複数行に渡ってコマンドを書くことができます。

最後に実行した plot を再び実行する

Syntax
replot [<expression>]

replot と入力すると、最後にプロットしたグラフを再表示します。 replot の引数に別の関数を指定すれと、 最後に実行した plot の出力に重ねてグラフを表示することができます。 連続して replot を実行すればどんどんグラフが重なっていきます。 replot は主に環境設定を変更した際に使用します。

例: sin(x) と cos(x) と tan(x) を重ねたグラフを描画
plot sin(x)
replot cos(x)
replot tan(x)

次のようにしても同じ

plot sin(x), cos(x), tan(x)

ファイルのデータをプロットする

Syntax
plot '<filename>' [with <line_style>]
例: ファイルからデータを読み込んで表示
plot 'sample.dat' with linespoints
# x    y
10     412.4
20     234.2
40     301.3

1行に1つの点を表す座標を書きます。 データは空白かタブで区切ります。 # 以降その行はコメントと見なされます。 データの間に空行を入れると、空行で分けられた点と点はプロットした際に線で結ばれなくなります。

/p/ffyw55u/20040103-plot2.gif

ファイル内の複数のデータをプロットする

plot "test.dat" using 1:2 with lines,\
     "test.dat" using 1:3 with lines,\
     "test.dat" using 1:4 with lines
test.dat
# x  y1  y2  y3
  1   0   0   0
  2  14  19  24
  3  50  60  70

x 座標を共有する、複数のデータをまとめて上のようなフォーマットで記述することができます。 using 1:2 は 1 列目のデータ (x) と、 2 列目のデータ (y1) を使用することを示しています。 つまり、上の例では 3 本の線が引かれることになります。

/p/ffyw55u/20040103-plot3.gif

プロットデータを直接入力する

Syntax
plot '-' [with line_style]
[x1] y1
[x2] y2
[x3] y3
  :
e

x 座標を省略すると、0, 1, 2 … が指定されたと見なされます。

plot '-' with linespoints
0 0
1 12
2 34
3 20
e
/p/ffyw55u/20040103-plot4.gif

関連記事

まくろぐ
サイトマップまくへのメッセージ