2013-06-20 11 views
6

X eksenindeki onay işaretleri arasındaki mesafeyi bulmanın bir yolu var mı? RangeRoundBands ile sıralı ölçek kullanıyorum, bana bir kene işlevi yok.D3.js'deki keneler arasındaki mesafeyi bulmak mümkün mü?

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

Bu eksen cezası (bir görüntü post olamaz) üretir ama mesafeyi nasıl bilemiyorum

(düzenleme: katma x.domain)

+1

Çıkış aralığı açısından mesafe? Ölçek işlevini iki değerle birlikte çağırıp sonuçları çıkarmanız yeterlidir. –

+1

@LarsKotthoff Edebi mesafeyi bulmaya çalışıyorum. Örneğin, 2 kenetle 600 piksel genişliğinde bir grafikte 200 piksel aralıklı olabilirler. – AnthonyDeaver

+1

Evet, bu nedenle iki onay değerini ölçeğe aktarın ve geri dönüş değerlerini çıkarın. –

cevap

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]); 
İlgili konular