2013-06-03 7 views
10

Ich verbrachte den besseren Teil des Tages damit, ein schönes Date-Achsen-Histogramm zu bekommen, in dem Maße, dass ich meine erste Frage auf Stackoverflow poste.d3 + crossfilter: Datumsachse rendert Pixelthinknöpfe

bars are too thin

Die Achse und die Stapelung sind genau so, wie ich es will, aber die Stäbe für nicht wirklich dünn sind (für mich) ersichtlichen Grund. Mit anderen Worten, ich würde wirklich etwas Hilfe schätzen.

Hier ist eine Minimalversion (Ich bin die dc.js-Bibliothek, aber ich bin die Herausforderungen auf d3 + crossfilters Namen ziemlich sicher):

var jsonstr = [{"timestamp": "2013-06-13T11:04:24.729Z"},{"timestamp": "2013-06-17T11:03:24.729Z"},{"timestamp": "2013-06-17T11:02:24.729Z"},{"timestamp": "2013-06-19T11:02:14.129Z"}]; 

var ndx = crossfilter(jsonstr); 

var timestampD = ndx.dimension(function (d) { 
    return new Date(d.timestamp); 
}); 

var timestampDG = timestampD.group(function (d) { 
    return d3.time.day(d); 
}); 

var barChart = dc.barChart("#dc-bar"); 
barChart.width(500) 
    .height(250) 
    .dimension(timestampD) 
    .group(timestampDG) 
    .x(d3.time.scale().domain([(new Date(2013,05,12)), (new Date(2013,05,20))]).nice(d3.time.day)) 
    .xAxis().tickFormat(function (x) { 
     return x.getDate() + "/" + (x.getMonth()+1); 
    }); 

dc.renderAll(); 

Antwort

13

Ich denke, das Problem ist eigentlich mit, wie Du benutzt dc.js; Sie nicht angeben, was die barchart units sollte in sein Versuchen Sie folgendes:.

barChart 
    .width(500) 
    .height(250) 
    .dimension(timestampD) 
    .xUnits(d3.time.days) 
    .ect 
+0

Gut entdeckt! Das hat den Trick gemacht. Danke vielmals! –

+2

Ich verbrachte ~ 5 Stunden frustriert von diesem Problem letzten Monat; Ich freue mich, dass ich jemand anderen den Schmerz ersparen konnte. –

1

Für jemand dieses Problem hat, für die Adam Antwort scheint nicht, etwas zu tun, stellen Sie sicher, dass Sie nicht über elasticX so wie ich es getan habe.

+1

Danke! Ich kämpfte mit meiner Zeitskala (nichts würde auftauchen) und fiel nur auf Ihren Kommentar. –