gnuplotによるグラフ作成11~補間線の効果
前回の補間線の追加について紹介したが、補間手法のunique
の効果が見えにくかったので、今回は同じX座標に2つの値があるようなデータを使って補間線の効果を確認してみたい。
1. X座標に2つの値を持つデータ
今回はX座標に2つの値をもつデータを用意した。実際にはExcelでXの列はXは0から0.5刻みでRound(X,0)
をX列、Y列はX+2*sin(2*PI()*8.5*X)
としてデータを生成した。
#X Y, data2.txt 0 0 1 2.5 1 1 2 -0.5 2 2 3 4.5 3 3 4 1.5 4 4 5 6.5 5 5 6 3.5 6 6 7 8.5 7 7 8 5.5 8 8 9 10.5 9 9 10 7.5 10 10
このデータを単純に線で結ぶと
plot 'data2.txt' with linespoints
実行結果は以下のようになり、すべての点が線で結ばれてしまい見にくい。
2. X座標に2つの値を持つデータの補間
次にunique
で補間線を挿入すると、
plot 'data2.txt' smooth unique, 'data2.txt' with points pt 6
実行結果は以下のようにX座標に2点ある中間地点同士を結ぶ補間線が挿入されていることがわかる。
ちなみにX座標上に複数のYデータがない場合は、下のようにデータ同士が線で結ばれるだけとなる。
前回紹介した補間線のオプションcsplines, acsplines, bezier, sbezierでプロットした例を以下に示す。
plot 'data2.txt' smooth csplines, 'data2.txt' with points pt 6
uniqueの処理をしているのでcsplineではX座標に2点ある中間地点同士を曲線で結ぶ補間線が挿入されている。
plot 'data2.txt' smooth acsplines, 'data2.txt' with points pt 6
uniqueの処理をした後で等しい重みをもつ自然スプライン補間になっているが、全体をフィッティングしたような補間線になっている。
plot 'data2.txt' smooth bezier, 'data2.txt' with points pt 6
データ点の数と同じ次数のベジエ曲線が引かれるが、端のデータは曲線上にある。ベジエ曲線の両端が補間線として不自然に見える。
plot 'data2.txt' smooth sbezier, 'data2.txt' with points pt 6
uniqueの処理をした後でベジエ曲線を引くため、端のデータは曲線上にない。上のベジエ曲線よりも補間線としては自然に見える。
3. まとめ
前回の補間線の追加の補足として今回は同じX座標に2つの値があるようなデータを使って補間線の効果を紹介した。