使用DC.js和Angular 2创建顺序条形图

使用DC.js和Angular 2创建顺序条形图,angular,d3.js,charts,dc.js,Angular,D3.js,Charts,Dc.js,我在angular 2和dc.js中创建顺序条形图时遇到问题,我在Javascript中找到了这个示例:,但当我尝试设置属性.xUnits时,我遇到了一个错误: TypeError:_x.rangeBands不是函数 在prepareXAxis(dc.js:3256) 在图纸上(dc.js:3919) at对象。图表。多伦德(dc.js:3898) at Object._chart.render[as_render](dc.js:1691) 在Object.render(dc.js:5586)

我在angular 2和dc.js中创建顺序条形图时遇到问题,我在Javascript中找到了这个示例:,但当我尝试设置属性
.xUnits
时,我遇到了一个错误:

TypeError:_x.rangeBands不是函数 在prepareXAxis(dc.js:3256) 在图纸上(dc.js:3919) at对象。图表。多伦德(dc.js:3898) at Object._chart.render[as_render](dc.js:1691) 在Object.render(dc.js:5586) 在StatisticDcComponent.ngAfterViewInit(statisticdc.component.ts:63) 在callProviderLifecycles(core.es5.js:11189) 在callElementProvidersLifecycles(core.es5.js:11164) 在callLifecycleHooksChildrenFirst(core.es5.js:11148) 在checkAndUpdateView(core.es5.js:12253)

这是我的组件:

从'@angular/core'导入{Component,OnInit,AfterViewInit};
从'angular2-json2csv'导入{CsvService};
从“d3”导入*作为d3;
从“crossfilter2”导入*作为交叉过滤器;
从'd3'导入{DSVRowString};
从“dc”导入*作为dc;
从“../statistic/statistic.service”导入{StatisticService};
@组成部分({
选择器:“statisticdc”,
styleUrls:['./statistic dc.scss'],
templateUrl:“./statistic dc.html”
})
导出类StatisticdComponent实现OnInit,AfterViewInit{
xdomain:任何[];
Y域:任何[];
CSV样本:任何;
实验:任何;
构造函数(私有统计服务:统计服务,私有CSV服务:CSV服务){
}
ngAfterViewInit():void{
让那=这;
this.csvSample=this.csvservice.ConvertToCSV(this.statisticService.getDealers());
设chart=dc.barChart(“#test”);
this.experiments=d3.csvParse(this.csvSample);
设exper=[];
这个。实验。forEach(函数(x){
经验推力(x);
});
设ndx=交叉滤波器(exper);
让runDimension=ndx.dimension(函数(d){返回d['dealer_name'];});
设speedSumGroup=runDimension.group().reduceSum(函数(d){返回d['total_bonus_num']];});
图表
.宽度(768)
.身高(380)
.xUnits(dc.units.序数)
.x(d3.scaleOrdinal())
.brushOn(错)
.xAxisLabel(“水果”)
.yAxisLabel(“售出数量”)
.dimension(运行维度)
.BARPADING(0.1)
.outerPadding(0.05)
.小组(小组);
chart.render();
}
ngOnInit():void{
}

}
看起来您正试图在d3版本4中使用dc.js。到目前为止,它只与d3v3兼容。@Gordon也许你知道dc.js的一些替代方案,可以与d3v4和交叉过滤器一起工作?我不知道。目前最好的解决方法是在页面中同时包含d3v3和d3v4,但更改其中一个的符号名(或使用模块加载技巧),使dc使用v3,而页面中的其他内容使用v4。希望能在今年晚些时候抽出时间,但这是一项艰巨的任务。