目次 前へ 次へ

7.11 テキスト スケールのラベルを調整する

次に、テキスト スケールにおいてラベルを操作する方法を紹介します。主に、多数の値がある場合にテキスト スケールを扱う場合を想定します。

テキスト スケールは、X 軸の値が数値ではない場合 (要するにデータの順番だけが大切な場合) に使用するためのものです。もしラベルを手動で指定しない場合、下のサンプルの通り 1 からの連番で自動でラベルが作成されます。



図 83:自動のテキスト スケールを用いたバー プロットの例 [ソース]

X 軸のラベルを文字列で指定するには、Axis::SetTickLabels() メソッドを使用して、テキスト ラベルが格納されている配列を手渡します。指定されたラベル数よりもデータの数の方が多い場合は、デフォルトの数値も使用されます。先ほどの例に月の名前を使用した例を下記に掲載します。



図 84:手動でテキスト スケール ラベルを指定する [ソース]


ヒント:月の名前と曜日の名前を地域別に扱うため、JpGraph では DateLocal クラスを提供しています。ロケールが指定されていない場合は、システムのデフォルトのロケールが使用されます。

では、バーの数が大量にあった場合はどうなるでしょうか。25 個のバーがある場合の結果を見てみましょう。



図 85:バーの数が多い場合 [ソース]

あまり見栄えがよくありません。ラベルの数が増えると、お互いが接近してしまいすべてのラベルを表示できなくなってしまいます。従って、すべてのラベルを表示するのは良い考えではありません。表示するラベルの数を調節するには、SetTextLabelInterval() メソッドを使用します。のメソッドの引数には、表示するテキスト ラベルの間隔を指定します。3 ヶ月ごとにラベルを表示するには、以下のようにします。

$graph->xaxis->SetTextLabelIntervall(3)

これにより、以下のような外見になります。



図 86:ラベルを 3 個ごとに表示する [ソース]

これにより、かなり外見が改善されました。

さらにデータの数が多くなった場合は、すべての目盛りを表示するのも難しくなってきます。そのため、JpGraph では目盛りを表示する間隔も変更できます (SetTextTickIntervall() 関数を使用します) 。しかし、テキスト スケールを使用しているグラフの場合、目盛りはバーの間に表示されるため、下記のグラフのようにあまり見栄えはよくありません。下記の例のように不可能というわけではありませんが、それほど見栄えがよいわけではありません。



図 87:目盛りを 3 個ごとに表示する [ソース]

目盛りを非表示にすることもできます。目盛りを隠すには、Axis::HideTicks() メソッドを使用します。X 軸にある目盛りを隠した場合は、以下のような結果が得られます。



図 88:すべての目盛りを非表示にする [ソース]


目次 前へ 次へ