この広告は、90日以上更新していないブログに表示しています。
前回のエラーバーの追加に続き、今回はファイルから読み込んだデータプロット間に補間線を追加する方法と、それぞれの補間法の違いについて紹介する。
単純にデータプロット同士を結び線を追加する場合は、plot ファイル名 with linespointsとすると、ライン上にデータプロットが描画されるスタイルが適用される。
#X Y, data.txt0 12 56 88 1510 2215 50
plot'data.txt'withlinespoints
実行結果は以下のようになる。
次にデータプロット同士を滑らかに補間するラインを追加する方法について紹介する。基本的にはplot ファイル名 smooth オプション名とすると各点を滑らかに接続するラインで描画される。なお、元のデータプロットは別途追加する必要がある。オプション名はunique, csplines, acsplines, bezier, sbezierがある。まずsmooth uniqueでプロットする場合
plot'data.txt'smoothunique,'data.txt'withpointspt6
以下が実行結果になる。

uniqueはx座標が同一でy座標が異なる複数のデータ点がある場合、平均値をとってそれらを直線でつなぐ。本例だとy座標が1個だけなので、単に直線でつなぐのと同じになる。
次にsmooth csplinesでプロットする場合
plot'data.txt'smoothcsplines,'data.txt'withpointspt6
uniqueよりも各点が滑らな線で結ばれていることがわかる。

csplinesは uniqueを実行してからデータを近似する3次の自然スプラインで補間する。
acsplineの場合は
plot'data.txt'smoothacsplines,'data.txt'withpointspt6
csplineと違って線が必ずしも点に乗らないが曲線あてはめとしてはより自然に見える。

uniqueの処理を実行してから重み付きの自然スプライン補間をする。 重みはデータファイルの第3列で指定するが、今回は指定していないので等しい重みをもつ自然スプライン補間になっている。
bezierの場合は
plot'data.txt'smooth bezier,'data.txt'withpointspt6
線が必ずしも点に乗らないのはacsplinesと同じだが、曲線の変化量が小さいため線が点からよりはずれている。
データ点の数と同じ次数のベジエ曲線で補間する。
最後にsbezierの場合は
plot'data.txt'smoothsbezier,'data.txt'withpointspt6
見た目はbezierと同じ。

uniqueと同一の処理を実行してからデータを近似するベジエ曲線を引く。今回はuniqueの処理でデータが変わらないので、bezierと同じになっている。
スプライン補間やベジエ曲線についてはwikipedia:スプライン曲線,wikipedia:ベジェ曲線など参照。またアルゴリズムや計算方法などはgoogle検索などでいくつも解説ページがあるので、気になる場合はそれらを参照するとよい。
個人的にはスプライン補間やベジエ曲線はあまり使ったことがない。実験データとその理論モデルの比較やモデルの係数を算出するために、データとともに近似線を表示することはあるが、たいてい理論モデル自体が直線、指数曲線、対数曲線、2次曲線などが多い。スプラインやベジエはあくまで点同士を滑らかにつなぐ方法であって、工学的に有用な知見を導くものではない。
今回はファイルからデータを読み込んだデータプロットに、点同士を滑らかにつなぐ補間線を追加する方法と、各補間方法の違いについて紹介した。
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。