89.20.3 Set datafile missing

書式:
     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 とバー

ジョン 5 での違いを示します。
Image figure_missing
例:
     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 を使用してください。

竹野茂治@新潟工科大学
2017年3月21日