gnuplotの精義
フリーの高機能グラフ作成ツールを使いこなす
- 著者 山本 昌志
- 判型 B5変型, 392頁
- 本体価格 3,600円
- ISBN 978-4-87783-208-7
本書の記載内容について訂正があります。
こちらを参照してください。
本書について
私がgnuplotを使う理由は、楽しいからです。プログラムを書くおもしろさ、きれいなグラフに仕上がったときの喜びがあります。それに対して、Microsoft社のExcelに代表されるスプレッドシートのグラフ作成はどうか? という質問もあるでしょう。正直言うと、私には使う喜びはほとんど感じませんし、苦労して使いこなそうという気になれなません。最も大きな理由は、作成されるグラフの質があまりにも低いことにあります。理科系の論文や報告書には、使えないと考えています。もう一つの理由は、Graphical User Interface(GUI)のため融通が利かないことにあります。異論もあるところでしょうが、私の正直な感想です。
グラフ作成ソフトウェアの優劣を決める最も重要な要素の一つに、仕上がりの美しさがあります。その点、gnuplotは申し分ありません。多少面倒ですが、細かく設定をすれば、論文に掲載できるクオリティのグラフを描くことができます。私が初めてgnuplotを使った十数年前のバージョンの出力されるグラフの質は低く、それにがっかりして、しばらく使っていませんでした。それからしばらくして、バージョンの向上とともに、グラフの仕上がりが良くなり、それ以来使い続けています。
gnuplotは高機能にもかかわらずフリーのソフトウェアです。しかも、WindowsやMacintosh、Unixなどさまざまなプラットホームに対応しています。コストを気にすることなく、だれでもが自由に使うことができます。プログラムの作成者に、大変、感謝しています。
目 次
- 第1章 基本的事項と簡単な操作
- 1.1 gnuplotとは
- 1.2 CUIを使うための準備
- 1.3 入手方法とインストール
- 1.4 基本操作
- 1.5 基本的なコマンドに関すること
- 1.6 コマンドの編集
- 1.7 コマンド入力とバッチファイル
- 1.8 デモプロット
- 第2章 プロットスタイル
- 2.1 共通事項
- 2.2 二次元プロットによる関数の表示(plot)
- 2.3 二次元グラフによるデータの表示
- 2.4 金融データの表示
- 2.5 ラベルによるグラフ
- 2.6 ベクトル場の表示(vectors)
- 2.7 エラーバー付きのグラフ
- 2.8 三次元プロットによる関数の表示
- 2.9 三次元データの表示(splot)
- 2.10 等高線プロットとカラーマップ
- 2.11 画像データの表示
- 2.12 さまざまな応用
- 第3章 データ処理
- 3.1 データファイルの設定
- 3.2 数値データ構造
- 3.3 マトリックス形式のデータ
- 3.4 バイナリーデータの取り扱い(binary)
- 3.5 数値データファイルの処理
- 3.6 最小二乗法(fit)
- 3.7 データの補間(smooth)
- 3.8 ヒストグラム(frequency)
- 第4章 グラフの装飾
- 4.1 グラフ上の座標系
- 4.2 文字の設定
- 4.3 色の設定
- 4.4 グラフのサイズ、原点、余白の指定
- 4.5 枠の設定(set border)
- 4.6 複数の軸
- 4.7 対数軸(set logscale)
- 4.8 描画範囲(set xrange)
- 4.9 軸の目盛りラベルの表示フォーマット(set format)
- 4.10 軸の目盛りの刻みの設定(set xtics)
- 4.11 グリッドの設定(set grid)
- 4.12 時間/日付のデータプロット
- 4.13 タイムスタンプ(set timestamp)
- 4.14 タイトル
- 4.15 グラフ中の説明文(set label)
- 4.16 グラフ中の矢印
- 4.17 グラフ中の長方形(set object rectangle)
- 4.18 凡例の設定(set key)
- 4.19 プロットに使う線種とポイントの設定
- 4.20 塗りつぶしの設定
- 4.21 三次元プロット(splot)特有の設定
- 4.22 計算のサンプル点の数(samples、isosamles)
- 4.23 複数のグラフを一度に表示(multiplot)
- 4.24 アプリケーションを使ったプロットの修正
- 第5章 グラフの出力
- 5.1 ターミナルについて
- 5.2 使用頻度の多いターミナルオプション
- 5.3 ディスプレイに出力
- 5.4 ファイル出力
- 5.5 数値出力(set table)
- 5.6 アニメーションの作成(gif animate)
- 第6章 プログラミング言語としてのgnuplot
- 6.1 バッチファイルとは
- 6.2 バッチファイルの作成と実行
- 6.3 変数
- 6.4 演算子
- 6.5 制御構造
- 6.6 関数
- 6.7 ファイル入出力
- 6.8 サブルーチン
- 6.9 データ構造
- 6.10 その他
- 6.11 バッチファイルの応用
- 第7章 プログラミング言語からgnuplotを操作
- 7.1 プログラミング言語での処理方法の概要
- 7.2 C/C++言語
- 7.3 FORTRAN
- 7.4 Perl
- 7.5 HTML/PHP
- 7.6 C/C++言語でパイプを使う方法
- 第8章 LaTeXとの連携
- 8.1 LaTeXについて
- 8.2 gnuplotのグラフをLaTeXに
- 8.3 EPSファイルでLaTeXコマンドを使う
- 付 録
- 付 録A コマンド一覧
- 付 録B 色指定(RGBと名前)
- 付 録C カラーパレットで推奨するマッピング関数(rgbformulae)
- 付 録D Symbolフォント
サンプルプログラムのダウンロード
本書で解説したサンプルプログラムとサンプルデータはこちらからダウンロードできます。
lzhアーカイブ(3.7MB)
■正誤表■ 2012/2/23
本文の内容に誤りがありました。 お詫びして訂正いたします。
- 初版2刷の修正一覧
- 245 頁 1 行目: 「列 (row)」->「行 (row)」、「行 (column)」 ->「列 (column)」
- 301 頁表 6.5 のsgn() の「動作」の「z」->「z_r」(z に下付きの r)
- 初版1刷の修正一覧
- v 頁 1 行目: 「竹野」->「松田」
- vii 頁 13 行目、および 47 頁のセクションタイトル:
「parametirc」->「parametric」(i,r が逆)
- vii 頁下から 6 行目、および 68 頁のセクションタイトル:
「inpulse」->「impulses」(n を m に、最後に s を追加)
- viii 頁 11 行目、および 107 頁のセクションタイトル:
「inpulse」->「impulses」(n を m に、最後に s を追加)
- xi 頁 13 行目、および 243 頁のセクションタイトル:
「isosamles」->「isosamples」(p を追加)
- 7 頁 7 行目: 「gp423win32」->「gp425win32」
- 11 頁 図 1.3: wgnuplot-4.2.3 の画面になっている
- 21 頁 4 行目: 「[0:5]」->「[0,5]」
- 36 頁 図 2.6: 「fuilledcurves」->「filledcurves」(u が不要)
- 44 頁 6 行目: 「」->「」(i,t が逆)
- 44 頁 9 行目: 「titel」->「title」(e,l が逆)
- 63 頁リスト 2.3 の 5 行目の「,」を取る
- 68 頁下から 1 行目: 「(fraq)」->「(freq)」(a->e)
- 87 頁 5 行目: 「cli1in」->「clip1in」 (p を追加)
- 87 頁 6 行目: 「cli4in」->「clip4in」 (p を追加)
- 99 頁 2 行目「列の番号 (1,2」->「列の番号 (0,1,2」
- 99 頁 3 行目「行の番号 (1,2,3」->「行の番号 (0,1,2,3」
- 107 頁 タイトルと4 行目: 「inpulse」->「impulses」(n を m に、最後に s を追加)
- 112 頁下から 4 行目: 「($1, $2, $2)」->「($1, $2, $3)」
- 140 頁 2 行目: 「gnuplut」->「gnuplot」(u->o)
- 143 頁 10 行目: 「あるは」->「あるいは」
- 145 頁 表 3.1 の下から 5 つ目: 「符号無し 8 ビット」->「符号無し 64 ビット」
- 146 頁 9 行目の下のデータ構造の一番右の列が、2 行目以降「y_{0N}」「y_{1N}」-> 「z_{0N}」「z_{1N}」
- 153 頁 式 (3.6): Σの上の M -> N に (161 頁の式 (3.10) も同様)
- 163 頁下から 3 行目: 「ととも」->「とも」
- 163 頁表 3.3 の 2 行目: 「以下にに」->「以下に」
- 164 頁下から 2 行目: 「ペジェ」->「ベジェ」
- 165 頁 1 行目: 「ペジェ」->「ベジェ」
- 170 頁 2,4,6,8,10 行目: 「ペジェ」->「ベジェ」(6 箇所)
- 174 頁 2 行目: 「gunuplot」->「gnuplot」(u が一つ余計)
- 180 頁 4 行目: 「O@X」->「@OX」および「O が出力された後、サイズゼロの X が」->「サイズゼロの O が出力された後、X が」
- 188 頁 7 行目: 「noration」->「noratio」(最後の n を取る)
- 190 頁下から 7 行目: 「bakc」->「back」(c,k が逆)
- 195 頁 5 行目: 「0.03^x」->「0.3^x」(以後 a^b は a の b 乗 とする)
- 197 頁下から 3 行目: 「[-3,*]」->「[-3:*]」(,->:)
- 198 頁 9 行目: 「[-1:1]」->「[-1,1]」(:->,)
- 200 頁 4 行目: 「ファーマット」->「フォーマット」
- 202 頁の枠内: 「¥{flags}{width}{.precision}type」の先頭は「¥」->「%」
- 205 頁下から 5 行目: 「(10^{-1},10^{-1},10^{-1})」 -> 「(10^{-1},10^0,10^1)」
- 205 頁下から 4 行目: 「(1.0E-1,」->「(1.0E-01,」
- 207 頁 3 行目、および脚注: 「副メモリ」->「副目盛り」
- 207 頁 4 行目: 「3 行目は」->「4 行目は」
- 208 頁 2 行目: 「副メモリ」->「副目盛り」
- 209 頁 5 行目: 「降られます」->「振られます」
- 209 頁 6 行目: 「scale 3 1.5」->「scale 3, 1.5」(, を追加)
- 209 頁 8 行目: 「scale 1 0.5」->「scale 1, 0.5」(, を追加)
- 210 頁下から 5 行目: 「副メモリ」->「副目盛り」、「主メモリ」 -> 「主目盛り」
- 229 頁 5,6 行目: 「form」->「from」(o,r が逆)
- 229 頁 8 行目: 「size 4.5 2.1」->「size 4.5, 2.1」(, を追加)
- 232 頁図 4.26: 右の図の右端の列の 3 つの lm はいずれも rm
- 235 頁 1 行目: 「3 番は赤色」->「3 番は青色」
- 242 頁下から 8 行目: 「 と は、x および y 軸」 ->「 と は、x および z 軸」(x->z, y->z)
- 242 頁下から 7 行目: 「方線」->「法線」
- 244 頁下から 4 行目: 「3 列× 2 行」->「3 行× 2 列」
- 244 頁下から 2 行目: 「set seize」->「set size」
- 245 頁 1 行目: 「列 (row)」->「行 (row)」、「行 (column)」 ->「列 (column)」
- 245 頁 8 行目、302 頁下から 3 行目: 「ギブツ現象」->「ギブス現象」
- 251 頁下から 5 行目: 「Scable Vecor」->「Scalable Vector」 (la と t を追加)
- 258 頁図 5.1 ping -> png
- 261 頁 7 行目: 「tilte」->「title」(l,t が逆)
- 262 頁 2 行目: 「noenhanced」->「{no}enhanced」
- 271 頁 1 行目: 「size 600 480」->「size 600, 480」(, を追加)
- 271 頁 2 行目: 「{fname ""}」は、削除
- 272 頁下から 4 行目: 「枠線」-> 「枠線やラベル」
- 275 頁下から 8 行目: 「この方法は」の文を削除
- 275 頁下から 9 行目: 「set terminal "出力ファイル名"」->「set output "出力ファイル名"」
- 280 頁下から 9 行目: 「gunplot」->「gnuplot」(u,n が逆)
- 287 頁 12,13 行目: 「parsist」->「persist」(a->e)
- 289 頁 11 行目: 「true は整数のゼロのみで、その他の場合は false」->「false は整数のゼロのみで、その他の場合 は true」
- 289 頁 12 行目: 「0 (true) あるいは 1 (false) です」 ->「1 (true) あるいは 0 (false) です」
- 294 頁のリスト 6.4 の先頭 「defined(loop)」->「exists(loop)」
- 297 頁 4 行目: 「%f.0」->「%.0f」
- 299 頁下から 2 行目: 「虚部」->「実部」
- 301 頁表 6.5 の asinh(z) の「動作」の項目の「arcshinh(z)」 ->「arcsinh(z)」(h を一つ取る)
- 301 頁表 6.5 の「atan2(z1,z2)」->「atan2(zr1,zr2)」
- 300,301 頁の表 6.5 の見出し、および関数の引数の「rz」->「zr」
- 301 頁表 6.5 の ceil(), erf(), erfc(), floor(), sgn() の「動作」の「z」->「z_r」(z に下付きの r)
- 301 頁表 6.5 の log(z) の「動作」の項目の「loge(z)」の e は下付き文字
- 303 頁の式 (6.4) の右辺の下の式は「f(n,x)=」が不要
- 310 頁下から 3 行目: 「解析による頼る」->「解析に頼る」
- 311 頁 (6.8),(6.9),(6.10) の右辺に h 倍が必要
- 312 頁リスト 6.8 6 行目「k1」->「k2」
- 317 頁 4 行目: 「連立部分方程式」->「連立微分方程式」
- 326 頁 式 (6.26): 「J_{n-1}」「J_{n+1}」->「J_{n-1}(x)」「J_{n+1}(x)」((x) をつける)
- 326 頁 式 (6.27): 「J_n}」「J_{n-2}」->「J_n(x)」「J_{n-1}(x)」 ((x) をつける)
- 329 頁下から 1 行目: 「ファイ名」->「ファイル名」
- 335 頁 6 行目: 「-2π〜π」->「-2π〜2π」
- 350 頁リスト 7.7 の上のサンプル: 「¥textbackslash n」->「¥n」
- 358 頁の一番下のサンプルの 4 行目「¥cfrac」 -> 「¥frac」
- 363 頁の「undefine」のところの「(Windows のみ)」を削除
- 363 頁 3 行目: 「rest」->「reset」(e を追加)
- 363 頁表 A.2 の「cbdata」の意味欄に「データ型が日時」を追加
- 363 頁表 A.2 の「historysize」は 「ヒストリーサイズ」を追加
- 363 頁表 A.2 の date_specifiersは削除
- 364 頁の time_specifiers とlogは削除