空のファイル名 '' は、同じ plot コマンド上で、直前の入力ファイルを再び 使用することを gnuplot に指示します。よって、同じ入力ファイルの 2 つの データ列を描画するには以下のようにします:
plot 'filename' using 1:2, '' using 1:3
'+' と '++' という特別なファイル名は、using 指定の全体と描画スタイル にインライン関数を使えるようにするための仕組みです。通常、関数描画はサ ンプル点毎に単一の y (または z) の値しか持てません。しかし疑似ファイル '+' はそれがあたかも実際の入力ファイルであるように、using 指定による 1 列目の値を標本点として扱い、さらに追加の列の値を指定することも可能で す。返される標本点の数は、set samples で制御できます。 例:
plot '+' using ($1):(sin($1)):(sin($1)**2) with filledcurves
同様に、疑似ファイル '++' は、x 方向は set samples で制御される点の 数、y 方向は set isosamples で制御される点の数の、標準的な [x,y] 座 標の格子を生成する 2 列のデータを返します。'++' の描画の前に、xrange と yrange を設定する必要があります。 例:
splot '++' using 1:2:(sin($1)*sin($2)) with pm3d plot '++' using 1:2:(sin($1)*sin($2)) with image
'-' という特別なファイル名は、データがインラインであることを指示し ます。すなわち、データをコマンドの後に続けて指定します。このときはデ ータのみがコマンドに続き得ます。よって、plot コマンドに対するフィル ター、タイトル、ラインスタイルといったオプションは、plot のコマンド ラインの方に書かないといけません。これは、unix シェルスクリプトにおけ る < < (ヒアドキュメント)、あるいは VMS DCL における $DECK と同様です。 そのデータは、それらがファイルから読み込まれたかのように、1 行につき 1 つずつのデータ点が入力されます。そしてデータの終りは、1 列目の始めに 文字 "e" を置くことで指示します。using オプションをこれらのデータに 適用することは可能です。ある関数を通しデータをフィルターすることに使う のは意味があるでしょうが、列を選ぶのに使うことは多分意味がないでしょう。
'-' は、データとコマンドを一緒に持つことが有用である場合のためにあ ります。例えば、gnuplot があるフロントアプリケーションのサブプロセ スとして起動される場合などがこれにあたります。例として、デモンストレ ーションでこの機能を使うものがあるでしょう。index や every のよう な plot のオプションが与えられていると、それらはあなたに使われるこ とのないデータを入力する事を強要します。次の例を見てください。
plot '-' index 0, '-' index 1 2 4 6
10 12 14 e 2 4 6
10 12 14 e
これは、実際に動作しますが、
plot '-' , '-' 2 4 6 e 10 12 14 e
とタイプする方が楽でしょう。
もし、replot コマンドで '-' を使うなら、あなたは 1 度以上データを入力する必要があるでしょう。以下参照: replot (p. ), refresh (p. )。
空のファイル名 ('') は、直前のファイル名が再び使われることを指示しま す。これは、
plot 'ある/とても/長い/ファイル名' using 1:2, '' using 1:3, '' using 1:4
のようなときに便利です。(もし同じ plot コマンド上で、'-' と '' の 両方を使用すると、上の例にあるように、インラインデータの 2 つの集合を 与える必要があります。)
popen 関数を持っているシステム上では、データファイルは、'< ' で始まるフ ァイル名によって、シェルコマンドからパイプ入力することができます。例え ば
pop(x) = 103*exp(-x/10) plot "< awk '{print $1-1965, $2}' population.dat", pop(x)
は、最初の人口の例と同じ情報を描画します。ただし、x 座標は 1965 年か らの経過年を表すようになります。この例を実行するときは、上のデータフ ァイルのコメント行をすべて削除しなければなりませんが、または上のコマ ンドの最初の部分を次のように変えることもできます (コンマに続く部分):
plot "< awk '$0 !~ /^#/ {print $1-1965, $2}' population.dat"
このアプローチは最も柔軟性がありますが、using あるいは thru キー ワードを用いた単純なフィルタリングで行うことも可能です。
竹野茂治@新潟工科大学