Javascript 每个csv列上的d3汇总

Javascript 每个csv列上的d3汇总,javascript,d3.js,Javascript,D3.js,我尝试使用d3.rollup来获得每列的总和。 data.csv如下所示: DateTime, A, B, C 2020/2/27 7:16 3 0 1 2020/2/26 23:44 1 0 4 2020/2/26 21:35 1 1 0 2020/2/26 15:14 1 0 3 2020/2/25 20:35 1 1 0 2020/2/25 16:10 1 0 3 所需输出: 2020/2/27 3 0 1 2020/2/26

我尝试使用d3.rollup来获得每列的总和。
data.csv
如下所示:

DateTime, A, B, C
2020/2/27 7:16  3   0   1
2020/2/26 23:44 1   0   4
2020/2/26 21:35 1   1   0
2020/2/26 15:14 1   0   3
2020/2/25 20:35 1   1   0
2020/2/25 16:10 1   0   3
所需输出:

2020/2/27   3   0   1
2020/2/26   3   1   7
2020/2/25   2   1   3
我想每天对我的数据进行分组。我试图使用d3.nest嵌套数据,但未能映射每列上的数据

我不想按名称调用列,例如
d3.sum(d.A)
。相反,我希望将数据映射到所有列

var nested = d3.nest()
  .key(function(c) {return parseDate(new Date(c.datetime)); })//parseDate 
要按月获取日期,请执行以下操作:

.rollup(function(d){return {
  values: d3.sum(d.map(function(v) {
  return +v[d];}))};})
.entries(data);

任何帮助都将不胜感激。我刚刚开始学习js和d3。

我将用香草js给出答案,一旦我阅读了足够多的文档,我将尝试返回并给出d3答案

您可以这样做:

DateTime, A, B, C
2020/2/27 7:16  3   0   1
2020/2/26 23:44 1   0   4
2020/2/26 21:35 1   1   0
2020/2/26 15:14 1   0   3
2020/2/25 20:35 1   1   0
2020/2/25 16:10 1   0   3
csv:

我们可以通过多种方式将其转换为JSON/JavaScript数组,例如:

摘自:

const csv2json=(str,分隔符=',')=>{
const titles=str.slice(0,str.indexOf('\n')).split(分隔符);
const rows=str.slice(str.indexOf('\n')+1).split('\n');
返回rows.map(row=>{
常量值=行分割(分隔符);
返回titles.reduce((object,curr,i)=>(object[curr.trim()]=values[i].trim(),object),{})
});
};
让csv=
`日期时间,A,B,C
2020/2/27 7:16,  3,   0,   1
2020/2/26 23:44, 1,   0,   4
2020/2/26 21:35, 1,   1,   0
2020/2/26 15:14, 1,   0,   3
2020/2/25 20:35, 1,   1,   0
2020/2/25 16:10, 1,   0,   3`;
让word_array=csv2json(csv,,);
console.log(word\u数组)

.as console wrapper{max height:100%!important;top:0;}
我将用vanilla js给出答案,一旦我阅读了足够的文档,我将尝试返回并给出d3答案

您可以这样做:

DateTime, A, B, C
2020/2/27 7:16  3   0   1
2020/2/26 23:44 1   0   4
2020/2/26 21:35 1   1   0
2020/2/26 15:14 1   0   3
2020/2/25 20:35 1   1   0
2020/2/25 16:10 1   0   3
csv:

我们可以通过多种方式将其转换为JSON/JavaScript数组,例如:

摘自:

const csv2json=(str,分隔符=',')=>{
const titles=str.slice(0,str.indexOf('\n')).split(分隔符);
const rows=str.slice(str.indexOf('\n')+1).split('\n');
返回rows.map(row=>{
常量值=行分割(分隔符);
返回titles.reduce((object,curr,i)=>(object[curr.trim()]=values[i].trim(),object),{})
});
};
让csv=
`日期时间,A,B,C
2020/2/27 7:16,  3,   0,   1
2020/2/26 23:44, 1,   0,   4
2020/2/26 21:35, 1,   1,   0
2020/2/26 15:14, 1,   0,   3
2020/2/25 20:35, 1,   1,   0
2020/2/25 16:10, 1,   0,   3`;
让word_array=csv2json(csv,,);
console.log(word\u数组)

.as控制台包装{max height:100%!important;top:0;}
我没有使用过
d3.rollup()
,但这里有一篇好文章:。我会读的,如果这里还没有人回答,我会试着试一试。谢谢!我已经在没有任何luckI的情况下查找了它,但我没有使用
d3.rollup()
,但这里有一篇好文章:。我会读的,如果这里还没有人回答,我会试着试一试。谢谢!我已经查过了,没有任何好运!我会在D3路上等你。谢谢伟大的我会在D3路上等你。谢谢