2

最小値と最大値によるデータ範囲が与えられた場合、軸上のバケットの分布をどのように計算できますか?
要件は次のとおりです。
- 軸の目盛りは均等に分散されます (等しいサイズ)。- さらに、すべてのティックはまたはの
ような数値として表示されます 。 - 計算では、必要なバケットの数を定義するパラメーターを受け入れる必要があります。10, 20, 30, ...-0.3, 0.1, 0.2, 0.4, ...

次の例では、最大 10 個以下のバケットを計算します。

num buckets = 10
range length = 500
500 / 10 = 50
log_10(50) = 1,69
round up(1,69) = 2
10^2 = 100 bucket size
500 / 100 = 5 buckets

結果: それぞれサイズが 100 の 5 つのバケットがあります
10^x0.01, 0.1, 1, 10, 100, 1000 ...

正確に 42 個のバケットのバケット サイズを計算するにはどうすればよいですか?

4

1 に答える 1

1

よくわかりませんが、このコードが役立つと思います(JavaScript YUI YAHOO.util.DragDrop.jsから適応)

var initPosition = 0;
var rangeLength  = 500;
var maxPosition  = (initPosition + rangeLength);
getTicks: function(bucketSize) {
    var axisTicks = [];

    var tickMap = {};
    for (i = initPosition; i <= maxPosition; i = i + bucketSize) {
        if (!tickMap[i]) {
            axisTicks[axisTicks.length] = i;

            tickMap[i] = true;
        }
    }

    return axisTicks;
}

欠点は、軸の目盛りが均等に分散されない場合があるためです ((initPosition + rangeLength) / bucketSize) はプレーンな整数を返しません

于 2010-09-22T22:46:25.877 に答える