dc.js d3+crossfilter.top将过滤后的数据导出为CSV
dc.js d3+crossfilter.top to export filtered data to CSV
我仔细研究了代码示例,并能够调用crossfilter的.top(Infinity)
函数来输出过滤后的更新数据记录。我甚至可以用.top(n)
调用d3.csv.format
,以便获得可以下载的字符串化CSV输出。但我有几个问题。
-
我在我的图表绘制方法中调用top和csv.format函数,如下所述:
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(); });
为了节省空间,我删除了一些图表。我最重要的问题是关于调用这个导出数据调用。现在,我只是console.log
处理输出,它在浏览器控制台中显示为一组"漂亮"的CSV数据。我无法解决的问题是如何添加一个能够调用此方法的Export All
链接,因为在d3.csv
函数闭包的范围之外无法访问此代码区域我该如何解决这个问题
- CSV输出中返回的数据有重复的行,因为它包括原始CSV文件中的列以及
data.forEach(function(d){}
块中可见的生成列的句柄。CSV输出中的标题显示如下:
acuityInitial,dayOfWeek,disposition,hour,month,waitTime,year,dtg1,dtg,dtg2,mag,depth,dispositions
不知道如何解决这个问题。任何帮助都将不胜感激。
我只使用jquery onclick处理程序就解决了这个问题。我想我只是需要在这个问题上睡一觉。还使用download.js触发使用javascript 的文件下载
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();
});
相关文章:
- 如何将csv数据导入netsuite
- 将基本CSV数据加载到D3
- d3.csv有很多数据,只画了一个月
- 如何将CSV数据从变量下载到CSV文件
- csv数据中的新数组
- Javascript D3如何从CSV访问和操作数据集
- 在将csv文件中的数据分配给数组变量时增强了d3代码
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 将Excel/CSV文件中的数据导入angularjs-json对象中
- 如何使用 Java 脚本从 csv 文件中查找每列的数据类型
- 高图表不显示来自csv文件的数据
- 用于在表和报表的发件人中表示 CSV 文件数据的工具
- d3js:d3.csv及其's的数据消失
- 预先构建的GUI,用于上传.csv并将数据添加到mysql数据库
- node-webkit:将数据导出到csv并提示用户保存文件
- 将多个csv文件中的时间戳数据添加到highchart中
- 将数据写入位于客户端特定路径的CSV文件
- 在d3.js中从CSV中选择一段数据
- 最大容量的输入数据(CSV或JSON格式)在绘图D3可视化
- Highcharts数据csv加载