2013-06-20 5 views
6

Gibt es eine Möglichkeit, den Abstand zwischen den Teilstrichen auf der x-Achse herauszufinden? Ich benutze die Ordinalskala mit rangeRoundBands und sagt mir, dass es keine Tick-Funktion hat.Ist es möglich, den Abstand zwischen Ticks in D3.js zu finden?

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

Er erzeugt die Achsen-Fein (kann ein Bild nicht schreiben), aber ich kann nicht herausfinden, wie man den Abstand bekommen

(edit: hinzugefügt x.domain)

+1

Die Entfernung in Bezug auf den Leistungsbereich? Rufen Sie einfach die Skalierungsfunktion mit den beiden Werten auf und subtrahieren Sie die Ergebnisse. –

+1

@LarsKotthoff Ich versuche, die buchstäbliche Distanz herauszufinden. Bei einem Diagramm mit einer Breite von 600 Pixeln und zwei Ticks können sie beispielsweise 200 Pixel voneinander entfernt sein. – AnthonyDeaver

+1

Ja, also übergeben Sie die beiden Tick-Werte an die Waage und subtrahieren Sie die Rückgabewerte. –

Antwort

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]); 
Verwandte Themen