101.86.1 Plot with table

以下の説明は、特別な描画スタイル with table にのみ適用されます。

表データに変換される入力データに対する描画スタイルに依存する処理 (平滑 化、誤差線の延長、2 軸範囲のチェック等) を避けるため、あるいは表データ に変換できる列の数を増やすには、通常の描画スタイルの代わりに "table" キーワードを使ってください。この場合、範囲内/範囲外/未定義を意味する i, o, u が置かれる最後の追加列は、出力にはつきません。その出力先 は、最初に set table <where> で指定する必要があります。 例:


    set table $DATABLOCK1
    plot <file> using 1:2:3:4:($5+$6):(func($7)):8:9:10 with table

この場合、実際の描画スタイルがない状態なので、各列には特定の軸は対応し ないことになり、よって xrange, yrange 等の設定は無視されます。

文字列に対して using で評価した場合は、文字列も表データ化されます。 数値データは常に %g の書式で書き出されますが、他の書式を使いたい場合は、 そのように書式化された文字列を生成するように sprintf か gprintf を使用 してください。


    plot <file> using ("File 1"):1:2:3 with table
    plot <file> using (sprintf("%4.2f",$1)) : (sprintf("%4.2f",$3)) with table

CSV ファイルを生成するには、以下のようにします。

    set table "tab.csv" separator comma
    plot <foo> using 1:2:3:4 with table

[試験段階の機能] 表データ化のためにデータ点の部分集合のみを選択するには 入力フィルタ条件 (if <expression>) をコマンドの最後に指定することがで きます。その入力フィルタは、出力はされないデータ列も参照できることに注 意してください。この機能は、gnuplot のリリース版が現れる前に大幅に変更 される可能性があります。


    plot <file> using 1:2:($4+$5) with table if (strcol(3) eq "Red")
    plot <file> using 1:2:($4+$5) with table if (10. < $1 && $1 < 100.)
    plot <file> using 1:2:($4+$5) with table if (filter($6,$7) != 0)

竹野茂治@新潟工科大学
2021-06-25