【问题标题】:Set binsize for a barchart in dc.js在 dc.js 中为条形图设置 binsize
【发布时间】:2016-06-30 16:21:05
【问题描述】:

我有一个患者数据集,其中每个患者都有年龄。

我有一个显示患者年龄的条形图,使用以下代码生成:

     /*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();

我的问题如下:我如何更改 binsize,以便显示每组 5 人的年龄,而不是显示年龄组 43 中有多少人。所以它将显示年龄在 40 岁以内的人数 - 45.

【问题讨论】:

    标签: d3.js data-visualization dc.js crossfilter


    【解决方案1】:

    这就是组的价值函数的用途(类似于 map-reduce 的“map”部分)。

    您可以像这样指定每个年龄应落入范围的低端:

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

    现在您将在 0、5、10 等处获得垃圾箱。

    【讨论】:

    • 这可行,但是条的宽度很小,我如何让它在 2 个刻度之间填充。我目前的差距为 0
    • 通过使用负差距修复它
    • xUnits 控制条形宽度
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    相关资源
    最近更新 更多