34.1.9 Using

最もよく使われるデータファイルの修飾子は using です。

書式:

     plot 'file' using {<entry> {:<entry> {:<entry> ...}}} {'format'}

もし、フォーマット (format) が指定されれば、C のライブラリ関数 'scanf' を使ってデータファイルの各行をそのフォーマット文字列に従って読み込みま す。そうでなければ、行は列に分割されて読み込まれますが、デフォルトでは ホワイトスペース (スペースやタブ) で列の分離が行われていると見なします。 以下参照: datafile separator (p. [*])


各 <entry> は、適切な入力の一つのフィールドから値を選択するための単な

る列の番号か、またはカッコで囲まれた数式の指定、または何も指定しないか のいずれかです。

そのエントリがカッコで囲まれた数式の場合、N 列目の値を指定するのに関数 column(N) を使用できます。つまり、column(1) は読み込まれた最初の項目を 参照し、column(2) は次の項目、といった具合です。column(1), column(2), ... の略記として、特別な記号 $1, $2, ... を使用できます。関数 valid(N) で、N 番目の列が有効な数字であるかどうかテストできます。

入力データファイルの 1...N という実際の列に加えて、gnuplot は管理情報 を持ついくつかの "疑似列" を提供します。例えば、$0 または column(0) は、 データ集合内のそのデータ行の行番号を返します。

< entry> に何も書かなければ、そのエントリのリストの順にデフォルトの値が 使われます。例えば using ::4 は、using 1:2:4 と解釈されます。

using にただ一つのエントリを指定した場合は、その < entry> は y の値と して使われ、データ点の番号 (疑似列 $0) が x として使われます。例えば "plot 'file' using 1""plot 'file' using 0:1" と同じ意味です。 using に 2 つのエントリを与えた場合、それらは x, y として使われます。 さらにエントリを追加して、入力からのデータを利用するような描画スタイル の詳細については、以下参照: set style (p. [*]), fit (p. [*])

'scanf' 関数では色々なデータ形式の数値入力が使えますが、gnuplot は全 ての入力データを倍精度浮動小数とみなしますから、gnuplot では %lf が本質的に唯一の数値入力指定、ということになります。 書式文字列には、少なくとも一つ、そして 7 つ以下の、そのような入力指定子を入れる必要があります。 'scanf' は数と数の間にホワイトスペース、すなわち空白、タブ (" \ t")、改行 (" \ n")、または改ページ (" \ f") があると期待します。それ以外の入力は明示的にスキップされるべきです。

" \ t", " \ n", " \ f" を使うときはシングルクォートよりむしろダブルクォートを 使うべきであることに注意してください。


竹野茂治@新潟工科大学
2009年4月5日