next up previous contents
Next: 26.1.5 Special-filenames Up: 26.1 Data-file Previous: 26.1.3 Index

26.1.4 Smooth

gnuplot は、データの補間と近似を行う汎用的なルーチンをいくつか持っ ています。これ smooth オプションの中にグループ化されています。より 洗練されたデータ処理をしたければ、外部においてデータの前処理をするか、 または適切なモデルで fit を使うのがいいでしょう。

書式:

     smooth {unique | csplines | acsplines | bezier | sbezier}

unique は、データを単調に揃えた後で、それらを plot します。他のルー チンはいずれも、データの両端の点の間を結ぶ、ある連続曲線の係数を決定す るためにデータを使います。この曲線は、関数として同じ方法で描画されます。 すなわち、それらの値は x 座標に沿う同じ幅の区間ごとに選ばれ (set samples 参照)、それらの点を線分でつなぐことにより (もし line style が選ばれているのならば) 描画されます。

もし autoscale の状態であれば、描画範囲はグラフの境界線の中に曲線が 収まるように計算されます。

選択されたオプションを適用するのにデータの点数が少なすぎる場合は、エ ラーメッセージが表示されます。その最小のデータ数は unique では 1 つ、 acsplines では 4 つ、他のオプションでは 3 つです。

smooth オプションは、関数の描画のときには無視されます。 Acsplines acsplines オプションは「自然な滑らかなスプライン」でデータを近似しま す。データが x に関して単調にされた後 (smooth unique 参照)、1 つの曲 線が、いくつかの 3 次多項式の一部分により区分的に構成されます。それら の 3 次式の係数は、いくつかのデータポイントの重み付けによって求められ ます。重みは、データファイルの 3 列目に与えます。そのデフォルトの値は、 using の 3 番目の項目によって変更することができます。例えば次のよう にします。

     plot 'data-file' using 1:2:(1.0) smooth acsplines

性質上、重みの絶対的な大きさは、曲線を構成するのに使われる区分の数を決 定します。もし重みが大きければ、個々のデータの影響は大きくなり、そして その曲線は、隣り合う点同志を自然 3 次スプラインでつないで得られるもの に近づきます。もし重みが小さければ、その曲線はより少ない区分で構成され、 それによってより平滑的になります。その最も極端な場合はただ 1 つの区分 からなる場合であり、それは全てのデータに重みの付き線形最小 2 乗近似に よって作られます。誤差の立場から言えば、平滑さの重みは、その曲線に対す る「平滑化因子」によって分割された各点への、統計的な重みと見ることがで きます。それにより、そのファイル中の (標準的な) 誤差は平滑さの重みとし て使うことができます。

例:

     sw(x,S)=1/(x*x*S)
     plot 'data_file' using 1:2:(sw($3,100)) smooth acsplines

Bezier bezier オプションは、n 次 (データ点の個数) のベジェ曲線でデータを近 似します。この曲線は両端の点をつなぎます。 Csplines csplines オプションはデータを単調に揃えた後で (smooth unique 参照) 自然 3 次スプライン曲線で引き続く点をつなぎます。 Sbezier sbezier オプションは、最初にデータを単調に揃え (unique 参照) そし て bezier アルゴリズムを適用します。 Unique unique オプションは、データを x 方向に単調にします。同じ x を持つデ ータ点は y の値を平均して一つの点で置き換えます。そしてその結果として 得られる点を線分で結びます。
next up previous contents
Next: 26.1.5 Special-filenames Up: 26.1 Data-file Previous: 26.1.3 Index
Shigeharu TAKENO
2003年 10月 21日