Excel のそれをエミュレートしたいって話。で、それって思った以上に単純なアルゴリズムだったって話。結局、グラフの要素値の、最大値と最小値の差を取って、その差分の最上位桁の数値で判別してるだけみたい。 /** * @arg min {float} グラフ要素の最小値 * @arg max {float} グラフ要素の最大値 * @return 目盛間隔 */ var getTick = function(min, max) { var eff = max - min; //最上位桁値 var sft = 1; //桁上げ倍率 while (eff >= 10) { eff /= 10; sft *= 10; } while (eff < 1) { eff *= 10; sft /= 10; } return eff >= 5 ? sft : eff >= 2 ? sft * 0.5 :