2016-06-30 10 views
0

Ich habe einen Datensatz von Patienten, bei denen jeder Patient ein Alter hat.Set binsize für ein Balkendiagramm in dc.js

Ich habe ein Balkendiagramm, das das Patientenalter zeigt, die mit dem folgenden Code erzeugt:

 /*Age Bar Chart*/ 
      var ageDim = cf1.dimension(dc.pluck('leeftijd'));//define age dimension 
      var ageGroup = ageDim.group().reduceCount();//define age group 
      var ageChart = dc.barChart('#ageBarChart'); //link chart to DOM 
      ageChart 
      .dimension(ageDim) 
      .colors('#542788') 
      .group(ageGroup) 
      .x(d3.scale.linear().domain([15,75])) 
       .gap(1)//gap between bars 
       .xAxisLabel("Leeftijd in jaren") 
       .yAxisLabel("Aantal Patiënten"); 
       ageChart.render(); 

Meine Frage lautet wie folgt: Wie kann ich die binsize ändern, so dass anstatt zu zeigen, wie viele Menschen sind innerhalb der Altersgruppe 43 wird das Alter pro Gruppe von 5 angezeigt. Es wird also die Anzahl der Personen im Alter von 40 bis 45 Jahren angezeigt.

Antwort

1

Dies ist, was die Wertfunktion der Gruppe ist (Art des "Map" -Teils von map-reduce).

können Sie festlegen, dass jedes Alter in das untere Ende des Bereichs, wie diese fallen sollte:

var ageGroup = ageDim.group(function(age) { 
    return Math.floor(age/5)*5; 
}).reduceCount();//define age group 

Jetzt werden Sie Bins bei 0, 5 erhalten, 10, usw.

+0

Dies funktioniert jedoch die Breite der Bar ist winzig, wie bekomme ich das, um zwischen 2 Ticks zu füllen. Ich habe 0 Lücke im Moment –

+0

repariert es mit einer negativen Lücke –

+0

[xUnits] (https://github.com/dc-js/dc.js/blob/develop/web/docs/api-latest.md# coordinategridmixinxunitsxunits - function - coordinategridmixin) steuert die Balkenbreite – Gordon