next up previous contents
Next: Errorbars Up: Data-file Previous: Data-file

Using

ファイル中のデータの書式は、using オプションで指定できます。明示的 に scanf の書式文字列を指定することもできますし、簡単に列選択のみの指 定をすることもできます。

書式 :

        plot "datafile" { using { <ycol> |
                                  <xcol>:<ycol> |
                                  <xcol>:<ycol>:<ydelta> |
                                  <xcol>:<ycol>:<ylow>:<yhigh> }
                                {"<scanf string>"} } ...

及び、

        splot "datafile" { using { <xcol>:<ycol>:<zcol> | <zcol> }
                                 {"<scanf string>"} } ...

ここで、<xcol>, <ycol>, <zcol> は、スペースまたはタブによって区切られ た複数の列よりなるデータファイルにおいて、描画に使うデータの列を明示 的に指定することになります。plot において <ycol> のみが指定された場 合、<xcol> は、1 と仮定されます。splot において <zcol> のみが指定さ れた場合、ファイルからはその列だけが読み込まれます。<xcol> として 0 が指定された場合、<ycol> が座標番号(0, 1, ..)にたいして描画されます。 <xcol>, <ycol>, <zcol> は、定数、式のいずれでも指定できます。

plot においてエラーバー(plot errorbars を参照してください)を使 う場合、ydelta (例えば±の誤差)のデータを第3列におくか、ylow, yhigh のデータを第3、4列におく必要があります。この場合第1、2列は x, y でなくてはなりません。

scanf 文字列を指定すると、列指定はその順番以外は無視されます。つまり、

        plot "datafile" using 2:1 "%f%*f%f"
とすると、第1列が y 、第3列が x となります。

scanf 文字列が省略された場合は、列指定(<xcol>:<ycol>(:<zcol>))に基 づいて設定されます。using オプションが指定されなかった場合は、 plot に対しては ''%f%f''(errorbar 付きの plot については ''%f%f%f%f)が使われ、splot に対しては ''%f%f%f'' が使われます。

例 :

        plot "MyData" using "%*f%f%*20[^\n]%f" with lines

これで ``MyData'' から ''%*f%f%*20[^ 1#1n]%f'' に従ってデータが読み込まれま す。この書式指定文字列の意味は : ''%*f'' によって最初の数が読みとばされ、 ''%f'' によって次(2番目)の数が x として読み込まれます。続いて ''%*20[^ 1#1n]'' によって、最大 20 文字の改行文字でない文字が読みとばされ ます。最後に ''%f'' によって y が読み込まれます。

        n=3;
        plot "MyData", "MyData" using n

上のようにすると、GNUPLOT は ``MyData'' の第1列に対して、第2、3列を 描画します。ここで 'n=4; replot' を実行すると、第1列に対して、第2、 4列を描画します。

        splot "glass.dat" using 1

このようにすると、GNUPLOT は ``glass.dat'' の各行の最初の数を z 座標と して描画します。このとき各行のその他の項目は無視されます。

註 : GNUPLOT は、データファイルからバッファーにまず1行読み込み、

        sscanf(input_buffer, scanf_string, &x, &y{, &z});
と、しています。ここで、'x', 'y', 'z' は、単精度浮動小数型(float)で す。 2 つ(splot の時は3つ、errorbars の時は 3 または 4 つ)の単精 度浮動小数型を指定する任意の文字列が scanf 文字列として使用できます。

Masashi Katsurada 平成10年7月9日