目次 前へ 次へ

7.1.16 三次スプラインで滑らかなライン プロットを作成する

データ ポイントの数が少ないものの、滑らかなカーブでデータ ポイントを接続したい場合、JpGraph では三次スプライン補完を使用してグラフの描画を行えます。三次スプラインを聞いたことがなくても心配しないでください。 知っているデータ ポイントを与える必要があり、 JpGraph にグラフに欲しい挿入されたポイントが合計でいくつかということを伝えます。この機能を使うと、JpGraph はすべてのデータ ポイントの間を滑らかな曲線で自動的に補完します。新しい曲線は、与えられた補完ポイントの数だけ正確に生成されます。

スプライン補完を行う場合、データ ポイントの X と Y 座標を指定する必要があります。

まずは Spline インスタンスを作成します。Spline クラスを使用する場合、jpgraph_regstat.php ファイルをインクルードする必要があります。インスタンスの作成時には、2 種類のデータ配列 (X 座標と Y 座標) を指定します。

$spline = new Spline($xdata,$ydata);

これにより、データ ポイント間に三次スプライン補完を行います。また、これらのデータ ポイントは、スプラインの コントロール ポイント としても機能します。Spline クラスでは、実際の線の描画を行いません。その代わりに、補完値を含む新しいデータ配列を作成します。その後、このデータ配列をプロットに使用してください。この方法は補完データを使用する場合、高い柔軟性を与えてくれます。

Spline::Get() メソッドにより、ポイントが補完されたデータ配列を取得できます。以下に、その例を掲載します。

list($sdatax,$sdatay) = $spline->Get(50);

この例では、 $sdatax および $sdatay 配列を作成しています。それぞれ 50 データ ポイント分作成されています。これらの配列は、$spline オブジェクトを作成する際に指定したコントロール ポイントから作成されます。

次にこれらのデータ配列を使用して、グラフを描画します。

以下に、その例を掲載します。



図 28:三次元スプライン補完でコントロール ポイントを接続する [ソース]

より良い例を作成するために、実際は 2 つのプロットを使用しました。一つは滑らかな曲線を得るためのライン プロットで、もう一つはコントロール ポイントがある場所を示すための散布プロットです。


目次 前へ 次へ