2013-05-14 14 views
14

Mam .json z 3 kolumnami, gdzie jeden z nich to "Rok". Kolumna zawiera tylko lata. Brak dat !.D3 usuń ograniczniki przecinków dla tysięcy

Kiedy jestem na wykresie na osi "x", lata wychodzą z ogranicznikiem przecinka dla tysięcy.

Więc w .json data jest ten format: „Rok”: 1990 i na „x” oś wyjdzie jak ten 1,990

I zostały próbuje dowiedzieć się, jak analizować rok ale do tej pory nie mam szczęścia. Próbowałem następujące:

var parseDate = d3.time.format("%y").parse 

var x = d3.time.scale() 
.range([0, width]); 

//further down 

d3.json("waterData.json", function(error, json) { 

// Attach Data 
var data = json.data; 

// Select Data for X and Y 
var axis1 = 'Year'; 
var axis2 = 'Ratio' 

// Convert String into Numbers 
data.forEach(function(d) { 

///axis1 = parseDate(axis1); 

d[axis1] = +d[axis1] 
d[axis2] = +d[axis2] 
}); 

x.domain(d3.extent(data, function(d) { return d[axis1]; })); 
y.domain(d3.extent(data, function(d) { return d[axis2]; })); 


svg.append("g") 
    .attr("class", "x axis") 
    .attr("transform", "translate(0," + (height+10) + ")") 
    .call(xAxis) 
.append("text") 
    .attr("class", "label") 
    .attr("x", width) 
    .attr("y", -40) 
    .text(axis1) 

svg.append("g") 
    .attr("class", "y axis") 
    .attr("transform", "translate("+ -10 + "," + 0 + ")") 
    .call(yAxis) 
.append("text") 
    .attr("class", "label") 
    .attr("x", 10) 
    .style("fill", "#666") 
    .style("text-anchor", "start") 
    .text(axis2) 

Wszelkie sugestie, jak pozbyć się ogranicznika przecinka. Lub dowiedzieć się, jak przeanalizować datę.

+0

Wygląda na to, że nie jesteśmy w rzeczywistości za pomocą funkcji 'parseDate'. Spróbuj "d [axis1] = parseDate (d [axis1])". –

+0

Używam tego lub przynajmniej próbuję 5-tej linii od dołu. Dziękuję za sugestię, ale to nie działa. – Georgi

+0

Używasz go w niewłaściwym miejscu. Czy to twój pełny kod? –

Odpowiedz

25

Należy dodać .tickFormat(d3.format("d")) do OśX:

var xAxis = d3.svg.axis().scale(x).orient("bottom").tickFormat(d3.format("d")); 
+0

Wielkie dzięki, to działa idealnie. – bfncs

+0

Pamiętaj, że powoduje to utratę dokładności dziesiętnej –