コンテンツにスキップ

Gnuplotハンドブック

出典: フリー教科書『ウィキブックス(Wikibooks)』

Gnuplotハンドブック

[編集]

はじめに

[編集]

Gnuplotは高機能な2次元・3次元グラフ作成ツールです。コマンドラインベースで動作し、様々なプラットフォームで利用できます。

基本的な使い方

[編集]

グラフの描画

[編集]

2次元プロット

[編集]

基本的な2次元プロットは以下のように行います:

plot sin(x)
plot "data.txt" using 1:2

3次元プロット

[編集]

3次元プロットは以下のように行います:

splot sin(x)*cos(y)
splot "data.txt" using 1:2:3

出力形式

[編集]

グラフは様々な形式で出力できます:

set terminal png
set output "graph.png"
plot sin(x)

対応フォーマット:

  • PNG
  • PDF
  • SVG
  • PostScript
  • その他

グラフのカスタマイズ

[編集]

タイトルと軸ラベル

[編集]
set title "グラフタイトル"
set xlabel "X軸"
set ylabel "Y軸"

凡例

[編集]
plot sin(x) title "正弦波"

軸の範囲設定

[編集]
set xrange [-10:10]
set yrange [-1:1]

グリッド表示

[編集]
set grid

データファイルの利用

[編集]

データ形式

[編集]
  • スペース区切り
  • カンマ区切り(CSV)
  • その他のカスタム区切り
例:
# x y z
1 2 3
2 4 6
3 6 9

データの読み込み

[編集]
plot "data.txt" using 1:2
plot "data.csv" using 1:2 with lines

スタイルとオプション

[編集]

プロットスタイル

[編集]
  • lines
  • points
  • linespoints
  • dots
  • impulses
  • その他
使用例:
plot sin(x) with lines
plot "data.txt" with points

色とライン種

[編集]
plot sin(x) linecolor rgb "red"
plot cos(x) linetype 2

スクリプト作成

[編集]

基本的なスクリプト構造

[編集]
#!/usr/bin/gnuplot

set terminal png
set output "output.png"

plot sin(x)

変数の使用

[編集]
a = 2
plot a*sin(x)

条件分岐

[編集]
if (exists("datafile")) {
    plot datafile
} else {
    plot sin(x)
}

高度な機能

[編集]

フィッティング

[編集]
f(x) = a*x + b
fit f(x) "data.txt" using 1:2 via a,b

マルチプロット

[編集]
set multiplot layout 2,2
plot sin(x)
plot cos(x)
plot tan(x)
plot 1/x
unset multiplot

アニメーション

[編集]
do for [i=1:100] {
    plot sin(x+i/10)
    pause 0.1
}

トラブルシューティング

[編集]

よくあるエラー

[編集]
  • "undefined variable" - 変数が定義されていない
  • "cannot open file" - ファイルが見つからない
  • "invalid range" - 範囲指定が不正

デバッグ方法

[編集]
  • show variables - 現在の変数一覧
  • print - 値の確認
  • set terminal dumb - テキスト出力での確認

外部リンク

[編集]
Wikipedia
Wikipedia
ウィキペディアGnuplotの記事があります。