D3.js 基于假'创建DC线形图(或序列图);预测';团体
我正在尝试使用该页面中描述的库fft.js(法语)将预测函数转换为dc线形图或序列图,并以highchart为例进行渲染 我将维度组传递到函数中的第一步是仅将值转换为数组(可能存在更好的方法) 维度组如前所示:D3.js 基于假'创建DC线形图(或序列图);预测';团体,d3.js,fft,prediction,dc.js,crossfilter,D3.js,Fft,Prediction,Dc.js,Crossfilter,我正在尝试使用该页面中描述的库fft.js(法语)将预测函数转换为dc线形图或序列图,并以highchart为例进行渲染 我将维度组传递到函数中的第一步是仅将值转换为数组(可能存在更好的方法) 维度组如前所示: (12) […] 0: Object { key: 1, value: 703 } 1: Object { key: 40, value: 203 } 2: Object { key: 41, value: 309 } 3: Object { key: 42, valu
(12) […]
0: Object { key: 1, value: 703 }
1: Object { key: 40, value: 203 }
2: Object { key: 41, value: 309 }
3: Object { key: 42, value: 166 }
4: Object { key: 43, value: 193 }
5: Object { key: 44, value: 166 }
6: Object { key: 45, value: 218 }
7: Object { key: 46, value: 159 }
8: Object { key: 47, value: 200 }
9: Object { key: 48, value: 203 }
10: Object { key: 49, value: 239 }
11: Object { key: 50, value: 161 }
length: 12
进入预测功能后:
const result = prediction.map(function (x) {
return parseInt(x, 10);
});
console.log(result)
(15) […]
0: 202
1: 308
2: 166
3: 193
4: 165
5: 218
6: 159
7: 200
8: 203
9: 239
10: 161
11: 165
12: 271
13: 128
14: 155
length: 15
现在,因为我是javascript的初学者,我不知道如何将数组返回到一个伪组中,看起来像原始组,并添加了数据
这是我需要的阵列。所有伪造组:
0: Object { key: 40, value: 202 } // New predicted value
1: Object { key: 41, value: 308 }
2: Object { key: 42, value: 166 }
3: Object { key: 43, value: 193 }
4: Object { key: 44, value: 165 }
5: Object { key: 45, value: 218 }
6: Object { key: 46, value: 159 }
7: Object { key: 47, value: 200 }
8: Object { key: 48, value: 203 }
9: Object { key: 49, value: 239 }
10: Object { key: 50, value: 161 }
11: Object { key: 51, value: 165 }
12: Object { key: 52, value: 271 }
13: Object { key: 1, value: 128} // Need restart at 1 because it's the WeekOfYear
14: Object { key: 2, value: 155}
length: 15
试图理解这些答案中描述的方法,但我认为它不适合我的问题:
谢谢你的帮助
编辑1:
这是我目前找到的解决方案,但我认为它根本没有经过优化,但它在一定程度上达到了预期的效果
function fakepredict(donnee, horizon, nb_harmonique){
return {
all: function () {
var a = donnee.all();
datav = new Array();
datax = new Array();
for (var i = 1; i < a.length; i++) {
x = a[i].value
datav.push(x)
};
var datav = predict(datav, horizon, nb_harmonique);
var first = a[1].key;
var ln = datav.length;
for (var i = 0; i < ln; i++) {
k = i + first;
// if (k > 52){k = (i + horizon) - (ln + 1)};
var kv = { key: k, value: datav[i] };
datax.push(kv);
};
console.log(datax);
return datax;
}
};
}
function fakepredict(唐尼、地平线、nb_harmonique){
返回{
全部:函数(){
var a=donnee.all();
datav=新数组();
datax=新数组();
对于(变量i=1;i52){k=(i+horizon)-(ln+1)};
var-kv={key:k,value:datav[i]};
数据x.推力(千伏);
};
console.log(datax);
返回datax;
}
};
}
我深入地回答了这个问题,然后发现我无法解释您原来的组-为什么它从键1开始,然后跳到40,运行到50,然后停止?即使它不正常,我也很难理解——第51周和第52周是否缺失?这需要更多的学习,但在处理日期时,通常最好使用日期刻度-每个键都是一个完整的年份日期,然后如果你想要的话,你可以只打印周数,但你不必担心包装或重叠。创建一个假组很容易,将数组值映射回组值并不难,但我担心原始数据可能会出现问题,在这种情况下,结果将毫无意义。您好,Gordon,是的,数据表示转换为周的日期。每个项目都对应一张独特的“票证”,上面有开张日期和截止日期。为此,我导入了两个csv文件,第一个文件包括带开放日期的门票,并且在过去10周内已关闭。第二个包括没有截止日期的开放票(我需要它们来显示另一个图表)。我想要预测的组的大小是所有票证都已关闭,只有当交叉过滤器没有找到关闭日期时,它才会将它们放在第一个键(0:Object{key:1,value:703})中。因此,我认为我应该通过一个伪组将其过滤到上游,但我还没有解决方案,空垃圾桶不起作用。我对我的假“预测”组的编程进行了改进,我通过编辑更新了问题。我深入回答了这个问题,然后发现我无法解释你原来的组-为什么它从键1开始,然后跳到40,运行到50,然后停止?即使它不正常,我也很难理解——第51周和第52周是否缺失?这需要更多的学习,但在处理日期时,通常最好使用日期刻度-每个键都是一个完整的年份日期,然后如果你想要的话,你可以只打印周数,但你不必担心包装或重叠。创建一个假组很容易,将数组值映射回组值并不难,但我担心原始数据可能会出现问题,在这种情况下,结果将毫无意义。您好,Gordon,是的,数据表示转换为周的日期。每个项目都对应一张独特的“票证”,上面有开张日期和截止日期。为此,我导入了两个csv文件,第一个文件包括带开放日期的门票,并且在过去10周内已关闭。第二个包括没有截止日期的开放票(我需要它们来显示另一个图表)。我想要预测的组的大小是所有票证都已关闭,只有当交叉过滤器没有找到关闭日期时,它才会将它们放在第一个键(0:Object{key:1,value:703})中。因此,我认为我应该通过一个伪组将其过滤到上游,但我还没有解决方案,空箱子没用。我在我的假“预测”小组的编程上取得了进步,我通过编辑更新了问题
0: Object { key: 40, value: 202 } // New predicted value
1: Object { key: 41, value: 308 }
2: Object { key: 42, value: 166 }
3: Object { key: 43, value: 193 }
4: Object { key: 44, value: 165 }
5: Object { key: 45, value: 218 }
6: Object { key: 46, value: 159 }
7: Object { key: 47, value: 200 }
8: Object { key: 48, value: 203 }
9: Object { key: 49, value: 239 }
10: Object { key: 50, value: 161 }
11: Object { key: 51, value: 165 }
12: Object { key: 52, value: 271 }
13: Object { key: 1, value: 128} // Need restart at 1 because it's the WeekOfYear
14: Object { key: 2, value: 155}
length: 15
function fakepredict(donnee, horizon, nb_harmonique){
return {
all: function () {
var a = donnee.all();
datav = new Array();
datax = new Array();
for (var i = 1; i < a.length; i++) {
x = a[i].value
datav.push(x)
};
var datav = predict(datav, horizon, nb_harmonique);
var first = a[1].key;
var ln = datav.length;
for (var i = 0; i < ln; i++) {
k = i + first;
// if (k > 52){k = (i + horizon) - (ln + 1)};
var kv = { key: k, value: datav[i] };
datax.push(kv);
};
console.log(datax);
return datax;
}
};
}