10

私は次のコードを試しました、

d3.scale.log().domain([1,4]).range([h, 0]);

軸では、軸の値で1e+0、2e+0、3e+0、4e+0の値を取得しています。しかし、10、100、1000、10000 などの対数値が必要です....

4

1 に答える 1

19

を軸機能と組み合わせて使用​​しlog.scaleます。tickFormattickFormat

例えば。1 -> 10000 対数スケールを設定:

var s = d3.scale.log().domain([1, 10000]).range([1000, 0])

次に、軸を設定します。

var axis = d3.svg.axis().scale(s).tickFormat(function (d) {
        return s.tickFormat(4,d3.format(",d"))(d)
})

http://jsfiddle.net/2hvxc/

4 つのティック (10 の累乗ごとに 1 つ) が必要であり、数字をコンマでフォーマットします。

フォーマットの詳細については、
https ://github.com/mbostock/d3/wiki/Formatting をご覧ください。

対数スケールの詳細については、
https ://github.com/mbostock/d3/wiki/Quantitative-Scales#wiki-log をご覧ください。

そして軸:
https://github.com/mbostock/d3/wiki/SVG-Axes#wiki-tickSize

于 2013-04-25T11:11:05.313 に答える