【发布时间】:2014-02-07 04:03:51
【问题描述】:
我有四个具有相同标题信息的 CSV,每个代表一年内的季度结果。
因此,对于一个结果,我可以通过简单的方式将其加载并显示到数据表中
d3.csv("data/first-quarter"), function(dataQ1){
dataQ1.forEach(function(d){
d.callTypes = d['Call Types'];
d.callDesc = d['Call Description'];
d.callVol = d['Call Volume'];
d.quarter = 'Q1';
});
var facts = crossfilter(dataQ1);
var timeDimension = facts.dimension(function(d){
return d.quarter;
});
dataTable
... //data table attributes
dc.renderAll();
});
但是,当我尝试从多个来源检索并附加结果时会出现复杂情况。
我采用的一种方法是将所有文件路径名放入一个数组中并遍历一个 forEach,并带有一个标志来显示它是何时呈现表格的最后一次迭代。但这因“递归过多”错误而失败。
接下来就是这样嵌套
d3.csv(filesPathNames[0], function(dataQ1){
d3.csv(filesPathNames[1], function(dataQ2){
d3.csv(filesPathNames[2], function(dataQ3){
d3.csv(filesPathNames[3], function(dataQ4){
但这两种方法似乎都不起作用,因为我不能简单地将一个 CSV 值添加到另一个。所以我认为我遇到的问题是我不确定如何正确连接 dataQ1、dataQ2、dataQ3 和 dataQ4。
是唯一的解决方案是手动将一个附加到另一个附加值 Q1、Q2、Q3 和 Q4 作为时间维度吗?
【问题讨论】:
-
queue library 应该在这里提供帮助。
-
好问题!
标签: csv d3.js crossfilter dc.js