dc.js d3+crossfilter.top to export filtered data to CSV
我对代码示例进行了广泛研究,并且能够调用crossfilter的
我在图表绘制方法中调用top和csv.format函数,如下所述:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | d3.csv("/data/acuityData.csv", function (data) { // format our data var dtgFormat = d3.time.format("%Y-%m"); var dtgFormat2 = d3.time.format("%a %e %b %H:%M"); data.forEach(function(d) { d.dtg1=d.dayOfWeek; d.dtg= dtgFormat.parse(d.year+"-"+d.month); d.dtg2=d.year; d.mag= d.acuityInitial; d.depth= d.waitTime; d.dispositions= d.disposition; }); // Run the data through crossfilter and load our 'facts' var facts = crossfilter(data); var all = facts.groupAll(); // for wait time var depthValue = facts.dimension(function (d) { return d.depth; }); var depthValueGroup = depthValue.group(); depthChart.width(930) .height(150) .margins({top: 10, right: 10, bottom: 20, left: 40}) .dimension(depthValue) .group(depthValueGroup) .transitionDuration(500) .centerBar(true) .gap(1) .x(d3.scale.linear().domain([0, 500])) .elasticY(false) .xAxis().tickFormat(function(v) { console.log(d3.csv.format(depthValue.top(500))); return v;}); dc.renderAll(); }); |
我删除了一些图表以节省空间。我最重要的问题是关于调用此导出数据调用。现在,我只是
不确定如何解决此问题。任何帮助表示赞赏。
我通过简单地使用jquery onclick处理程序解决了这个问题。我想我只是需要解决这个问题。还使用download.js触发使用javascript
进行文件下载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | depthChart.width(930) .height(150) .margins({top: 10, right: 10, bottom: 20, left: 40}) .dimension(depthValue) .group(depthValueGroup) .transitionDuration(500) .centerBar(true) .gap(1) .x(d3.scale.linear().domain([0, 500])) .elasticY(false) .xAxis().tickFormat(function(v) { //function triggered onClick by element from DOM $("#exportData").unbind().click(function() { download(d3.csv.format(depthValue.top(500))."exportedData.csv") }); return v;}); dc.renderAll(); }); |