プロが教えるわが家の防犯対策術!

宜しくお願い致します。

PHP4で折れ線グラフを作っています。
GDを使い、グラフを表示する事は出来たのですが、
Y軸の目盛値の出力方法で困っています。

現在のY軸は、データの最大値を10で割り、その値を1目盛とし、10目盛まで出力するようにしています。

例)最大値54→0,5,11,16,21,27,32,38,43,48,54の10目盛になります。

数値が中途半端ですっきりしません。
Excelでグラフを作成すると、自動的に最大値を切りのよい数値へしてくれていますが、PHPで実装するにはどのようにしたら良いでしょうか?
(上記の例ですと、最大値を60にしてくれます)

A 回答 (2件)

本当は有名なアルゴリズムがあるのかもしれませんが。

。。
とりあえず私が使っているやり方のエッセンスを紹介します。

1. 何本くらいグリッドが欲しいか。
2. 範囲の長さをグリッドの数で割って、厳密な場合の間隔を求める。
3. 比較しやすいようにある数で割って大きさを(1,10]に調整する。
 ある数っていうのは pow(10,floor(log10(厳密な長さ)) です。
4. 2未満なら1, 2.5未満なら2, 5未満なら2.5, 10未満なら5。
 これに prow(10,floor(log10(厳密な長さ)) を掛ける。
 これが概ね理想的なグリッドの間隔。
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました&お礼が遅くなってしまい、大変申し訳ありませんでした。。。

教えて頂いた通り、試して見ました。
この様な考え方があったのですね。とても助かりました、本当にありがとうございます。

お礼日時:2006/08/08 22:54

凄く細かい訂正です。


NO.1 の書き込みの区間の記号が逆でした。。。
正しくは [1,10) つまり 1 <= x < 10 でした。
    • good
    • 0
この回答へのお礼

了解です、ご丁寧にありがとうございましたm(__)m

お礼日時:2006/08/08 22:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!