Credits | Overview | Plotting Styles | Commands | Terminals |
---|
plot ... if (<expression>) splot ... if (<expression>)
入力データの各行に対し、filter if 内の式 (expression) が評価され、そ の値が真 (0 以外) の場合にのみ、その行を受け付けます。using 指定子内 で有効な任意の関数、変数はこのフィルタの式内でも有効で、描画には使用し ない入力データ列も利用できます。
式 (expression) が偽 (0) と評価したデータ列は、それがファイル内に存在 しなかったものとして扱います (以下参照: missing)。これは、以前サポー トしていた、using 指定の中で行う論理テストによる手法より、可読性の高 い同等の方法を提供します。
古い書式 (まだ使えます):
set datafile missing NaN plot FOO using (strcol(1) eq "ABC" ? $2 : NaN):3 with linespoints plot $DATA using 1:($2 < 999. ? $2 : NaN)
新しい書式:
plot FOO using 2:3 with linespoints if (strcol(1) eq "ABC") plot $DATA using 1:2 if ($2 < 999.)
古い例と新しい例の両方とも、入力ファイル FOO の行で最初の列が ABC で ある行、$DATA の 2 列目が 999 より小さい行のみを選択します。
このフィルタは splot コマンドでも利用可能ですが、そちらはフィルタの式 が 0 (偽) を返す場合、その点を欠損データ (missing) ではなく未定義 (undefined) として扱う、というわずかな違いがあります。