Javascript 每个csv列上的d3汇总
我尝试使用d3.rollup来获得每列的总和。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
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路上等你。谢谢