1 つのグラフに複数のプロットがある場合、どのプロットが何を示しているかを説明する必要があります。そのためには凡例を追加します。
各プロットには、凡例を指定するための SetLegend() メソッドを有しています。凡例を追加するためには以下の行を加えます。
$lineplot->SetLegend("Plot 1");
$lineplot2->SetLegend("Plot 2");詳細はソースコードを参照してください。
これで、表示するための凡例テキストを持つプロットがいくつあるかによって、凡例は自動的に配置されます。デフォルトで、凡例は画像の右上に配置されます。凡例の位置の調整や、余白を追加も調節できます。両方してみましょう。
まず右側の余白を増やし、凡例がほぼ中央に置かれるよう配置します。また、プロット エリアが圧迫されないように、画像全体の大きさを広げます。
凡例を修正するには、グラフの legend プロパティを使用してください。凡例の詳細な機能に関しては、クラス リファレンスの legend クラス を参照してください。
たとえば、凡例の位置を指定するには SetPos() メソッドを使用します。
$graph->legend->Pos(0.05,0.5,"right","center");これにより、以下の通りの結果が得られます。
上記の SetPos() メソッドに説明を加えます。まず、最初の 2 個の引数には、画像の横幅と縦幅を 1 にしたときの割合を指定します。割合を指定することで、画像の大きさが変化した場合も相対的な大きさが引き継がれます。私たちは、同じメソッドがイメージに任意のテキストを置くということをその後理解するでしょう。
柔軟性を追加するために、一つは、さらに、与えられた位置が関連するどのエッジの凡例かを指定しなければなりません。今回の例では、水平位置は右 (right) 端から、垂直位置は中央 (center) であることを指定しています。
これにより、凡例は右から 5% の位置の中央に描かれることになります。もし凡例を、left と指定した場合は、画像の左側から 5% の位置に描画されます。
デフォルトでは、それぞれの凡例は縦に整列します。これ以外にも、横に整列させることができます。この指定には、SetLayout() メソッドを使用します。先ほどのサンプルで横揃えの凡例を使用すると、以下の通りになります。
もっと高度な凡例のフォーマットのため、調節することができます。
凡例で使用されるコラムの調節で、メソッド Legend::SetColumns が使用されます。たとえば、3 つのコラムの使用で調整される凡例を持つため、以下のラインをスクリプトに追加する必要があります。
$graph->legend->SetColumns(3);