gpt4 book ai didi

javascript - dc.js:具有多个 CSV 的 ReduceSum

转载 作者:行者123 更新时间:2023-12-03 09:48:27 25 4
gpt4 key购买 nike

这是另一个 StackOverflow problem 的后续内容将包含多个 CSV 的图表创建到单个 dc.js 仪表板中。

我按照说明进行操作,我的图表正在运行。但是,numberDisplay 元素不起作用。我怀疑的是,由于我正在统计两个 CSV 的总计,因此我必须调整 groupAll.reduceSum() 函数,但我不确定如何调整。我的代码示例如下

//using queue.js to load data
var q = queue()
.defer(d3.csv, "data1.csv")
.defer(d3.csv, "data2.csv");

q.await(function(error, data1, data2){

//initiatizing crossfilter and ingesting data
var ndx = crossfilter();
ndx.add(data1.map(function(d){
return { age: d.age,
gender: d.gender,
scores: +d.scores,
total: +d.total,
type: 'data1'};
}));

ndx.add(data2.map(function(d){
return { age: d.age,
gender: d.gender,
scores: +d.scores,
total: +d.total,
type: 'data2'};
}));

//initializing charts
totalDisplay = dc.numberDisplay("#total-display");
totalScores = dc.numberDisplay("#total-scores");

//groupAll function to sum up the values
var scoresGroup = ndx.groupAll().reduceSum(function(d) {
d.scores;
});
var totalGroup = ndx.groupAll().reduceSum(function(d) {
d.total;
});

//parameters for the number display. Currently it is returning NaN
totalDisplay
.formatNumber(d3.format(","))
.valueAccessor(function(d) {
return d;
})
.group(totalGroup);

totalScores
.formatNumber(d3.format(",f"))
.valueAccessor(function(d) {
return d;
})
.group(scoresGroup);

任何帮助将不胜感激!

最佳答案

您需要使用return才能从函数返回值!

var scoresGroup = ndx.groupAll().reduceSum(function(d) {
d.scores;
});
var totalGroup = ndx.groupAll().reduceSum(function(d) {
d.total;
});

应该是

var scoresGroup = ndx.groupAll().reduceSum(function(d) {
return d.scores;
});
var totalGroup = ndx.groupAll().reduceSum(function(d) {
return d.total;
});

否则,您最终会得到 undefined 的总和,并且 undefined 不是一个数字。 :-)

关于javascript - dc.js:具有多个 CSV 的 ReduceSum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30948009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com