Dc复合图表

时间:2014-03-23 14:11:25

标签: dc.js

我有这样的数据

Sl.No,Sex,Age_band,Mesh of TYh,Type of Surgery 16,M,0-25,PHS,UL腹股沟 20,M,0-25,PHS,UL腹股沟 90,M,0-25,UHSL,UL腹股沟 95,M,0-25,UHSL,UL腹股沟 117,M,0-25,UHSL,UL腹股沟 119,M,0-25,UHSL,UL Inguinal 32,M,0-25,ULTRAPRO,切口 14,M,26-35,PHS,UL Inguinal 18,M,26-35,PHS,UL Inguinal

我正在尝试绘制复合图表 我的代码是

var mFilteredData = crossfilter(mData);
        var mDimension = mFilteredData.dimension(dc.pluck("Age_band"));
        var mGroup = mDimension.group().reduceCount(dc.pluck("TYPE of Mesh"));
        var mGroup1 = mDimension.group().reduceCount(dc.pluck("Type of Surgery"));


        var chart = dc.compositeChart(".chart");
        chart
        .width(400)
        .height(300)
        .yAxisLabel("User Count")
        .renderHorizontalGridLines(true)
        .dimension(mDimension)
        .x(d3.scale.ordinal())
        .xUnits(dc.units.ordinal)
        .compose([
            dc.barChart(chart)
            .centerBar(true)
            .gap(100)
            .colors('red')
            .group(mGroup)
            ,
            dc.barChart(chart)
            .centerBar(true)
            .gap(100)
            .colors('blue')
            .group(mGroup1)])
        .brushOn(false)
        .render();

但我得到了这个错误

Uncaught TypeError: Cannot call method 'all' of undefined 

1 个答案:

答案 0 :(得分:3)

我也有同样的问题。在dc源代码中进行了一些挖掘后,我看到如果你有一个序数x比例,图表会调用它的group all()函数(不完全确定原因,但似乎是使用x轴域的数据)。通过向复合图表添加组,您将解决此问题。像这样:

  dc.compositeChart(".chart")
    .width(400)
    .height(300)
    .yAxisLabel("User Count")
    .renderHorizontalGridLines(true)
    .dimension(mDimension)
    .group(mGroup)
    .x(d3.scale.ordinal())
    .xUnits(dc.units.ordinal)