set datafile missing "<string>" set datafile missing NaN show datafile missing unset datafile
コマンド set datafile missing は、入力データファイル中で欠損データを 記述する特別な文字列があることを gnuplot に指示します。missing に 関するデフォルト値 (文字) はありません。gnuplot は「欠損データ」と「無 効な値」(例えば "NaN" や 1/0) を区別します。例えば、連続するデータ点に 対するグラフの折れ線描画は、無効な値によってそこで切れますが、欠損デー タの場合はそうではありません。
数値が期待される場面で数値ではない文字が現れた場合は、それが missing で指定する文字列にマッチする場合を除いて、通常欠損データではなく、無効 な値として解釈します。
逆に、set datafile missing NaN とすると、数式やデータ中の数値ではな い値 (NaN) はすべて欠損データとして扱います。
注意: ある場合の欠損データと無効な値の扱いは、現在のバージョンの
gnuplot では変更されています。以下の例で、gnuplot バージョン 4 とバー
set style data linespoints plot '-' title "(a)" 1 10 2 20 3 ? 4 40 5 50 e set datafile missing "?" plot '-' title "(b)" 1 10 2 20 3 ? 4 40 5 50 e plot '-' using 1:2 title "(c)" 1 10 2 20 3 NaN 4 40 5 50 e plot '-' using 1:($2) title "(d)" 1 10 2 20 3 NaN 4 40 5 50 e
(a) のグラフは、3 行目には有効な値がひとつしかないため、gnuplot 4 と gnuplot 5 で違いがあります。バージョン 4 では、そこに 1 行に 1 つしか データがなかった場合の規則を適用し、行番号を "x" に、データを "y" と見 なし、誤ってその点を (2,3) に描画していました。
文字 '?' が欠損データを意味するものとして指定されている (b) では、古い 版の gnuplot でも新しい版でも同じデータを正しく処理します。
(c), (d) のグラフに見られるように、古い gnuplot では NaN を using の指 定の仕方によって異なった処理をしていました。現在は、gnuplot は入力列と して N と指定されていても ($N) と指定されていても NaN に対しては同じ処 理を行います。以下のデモも参照してください。 imageNaN デモ。
バージョン 5.0.6 時点で、これは欠損値フラグに関しても正しいです。以前のバージョンでは、plot コマンドに using N ではなく using ($N) を指 定した場合は、欠損値フラグの認識に間違いがありました。しかし、現在の gnuplot であっても、計算式で「欠損値」を使用するとその結果は NaN とな りうることに注意してください。例えば、1 列目か 2 列目に missing の文 字列がある場合、using ($1+$2) による評価は NaN となります。その場合 でもこれを欠損値として扱いたければ、コマンド set datafile missing NaN を使用してください。
竹野茂治@新潟工科大学