我有这样的数据
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
答案 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)