splot 'file' matrix using 1:2:3 # ASCII データ splot 'file' binary general using 1:2:3 # バイナリデータ
一様な格子の matrix データでは、各ブロックの z の値は一行で一度に読ま
れます。すなわち、
z11 z12 z13 z14 ... z21 z22 z23 z24 ... z31 z32 z33 z34 ...
ASCII 入力では、空行やコメント行は配列データを終了させ、新たな曲面の網
(mesh) を開始します。いつものことですが、splot コマンド の index
オプションを使ってファイル内の網を自由に選択できます。
2 つ目の形式は、非一様な格子で、x, y 座標は明示していると仮定するもの
で、入力データの最初の行を y 座標、最初の列を x 座標とみなします。
バイナリデータに対しては、1 行目の最初の要素は、データ列数でなければい
けません (ASCII データではその数は無視されます)。座標とデータ値は、
バイナリデータでは単精度浮動小数値とみなされます。
非一様な matrix データを描画するコマンドの例:
splot 'file' nonuniform matrix using 1:2:3 # ASCII データ splot 'file' binary matrix using 1:2:3 # バイナリデータ
よって、非一様な matrix データの構造は以下のようになります:
<N+1> <y0> <y1> <y2> ... <yN> <x0> <z0,0> <z0,1> <z0,2> ... <z0,N> <x1> <z1,0> <z1,1> <z1,2> ... <z1,N> : : : : ... :
これらは以下のような 3 つの数字の組に変換されます:
<x0> <y0> <z0,0> <x0> <y1> <z0,1> <x0> <y2> <z0,2> : : : <x0> <yN> <z0,N>
<x1> <y0> <z1,0> <x1> <y1> <z1,1> : : :
そして、これらの 3 つの数字の組は gnuplot の孤立線に変換され、その後 gnuplot が通常の方法で描画の残りを行います。
行列やベクトルの操作のサブルーチン (C による) が binary.c に用意され ています。バイナリデータを書くルーチンは
int fwrite_matrix(file,m,nrl,nrl,ncl,nch,row_title,column_title)
です。これらのサブルーチンを使う例が bf_test.c として用意されていて、 これはデモファイル demo/binary.dem 用に複数のバイナリファイルを生成 します。
plot での使用法:
plot `a.dat` matrix plot `a.dat` matrix using 1:3 plot 'a.gpbin' {matrix} binary using 1:3
例 - ASCII データファイルの配列の軸の拡大:
splot `a.dat` matrix using (1+$1):(1+$2*10):3
例 - ASCII データファイルの配列の第 3 行の描画:
plot 'a.dat' matrix using 1:3 every 1:999:1:2
Gnuplot は、array, record, format, filetype などの general バ イナリ形式を特定するようなキーワードをつけずにオプション binary を使 うことで、matrix バイナリファイルを読み込むことができます。その他の変換 用の general バイナリキーワードは、matrix バイナリファイルにも適用でき るでしょう。(詳細は、以下参照: binary general (72.2.1)。)
竹野茂治@新潟工科大学