2013-06-20 9 views
6

のx軸上の目盛りの間の距離を見つける方法はありますか?私はrangeRoundBandsでordinalスケールを使用していますが、tick関数がないことを示しています。それはD3.jsで目盛り間の距離を見つけることは可能ですか?

var x= d3.scale.ordinal().rangePoints([_margin.left, cWidth]); 
x.domain(['Dec','Jan']); 
var testTicks = x.ticks(2); 

それは軸の罰金を(画像を投稿することはできません)を生成しますが、私は距離を取得する方法を見つけ出すことはできません

(編集:追加x.domain)

+1

出力範囲の距離?単に2つの値でスケール関数を呼び出し、結果を減算します。私は文字通りの距離を見つけるためにしようとしている@LarsKotthoff –

+1

。たとえば、600ピクセル幅で2ティックのグラフでは、200ピクセル離れている可能性があります。 – AnthonyDeaver

+1

はい、2つのティック値をスケールに渡し、戻り値を減算します。 –

答えて

7
var data   = [45, 31, 23], // whatever your data is 
    graphHeight = 400, 
    // however many ticks you want to set 
    numberTicksY = 4, 
    // set y scale 
    // (hardcoded domain in this example to min and max of data vals > you should use d3.max real life) 
    y   = d3.scale.linear().range(graphHeight, 0]).domain(23, 45), 
    yAxis  = d3.svg.axis().scale(y).orient("left").ticks(numberTicksY), 
    // eg returns -> [20, 30, 40, 50] 
    tickArr  = y.ticks(numberTicksY), 
    // use last 2 ticks (cld have used first 2 if wanted) with y scale fn to determine positions 
    tickDistance = y(tickArr[tickArr.length - 1]) - y(tickArr[tickArr.length - 2]); 
関連する問題