Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在plotly.js中按周分组值_Javascript_Aggregate_Plotly.js - Fatal编程技术网

Javascript 如何在plotly.js中按周分组值

Javascript 如何在plotly.js中按周分组值,javascript,aggregate,plotly.js,Javascript,Aggregate,Plotly.js,下图是plotly.js中带有范围选择器的时间序列条形图 在这本书中,我试图找出如何按周对值进行分组,但似乎无法实现这一点。在更改时间范围选择时,plotly.js中是否设置了按周分组的设置?我似乎不知道这是否可能 这里是他们提供的主要文档页面,我尝试了尽可能多的与实现这一点相关的设置,但无法理解 var days=(函数(开始,计数){ 风险值天数=[]; var MSday=1000*60*60*24; 对于(变量i=0;i

下图是plotly.js中带有范围选择器的时间序列条形图

在这本书中,我试图找出如何按周对值进行分组,但似乎无法实现这一点。在更改时间范围选择时,plotly.js中是否设置了按周分组的设置?我似乎不知道这是否可能

这里是他们提供的主要文档页面,我尝试了尽可能多的与实现这一点相关的设置,但无法理解

var days=(函数(开始,计数){
风险值天数=[];
var MSday=1000*60*60*24;
对于(变量i=0;i

显然这不是内置的。如果它是内置的,或在某一点上成为内置的,请在这里的评论或其他答案中指出

我能确定的唯一可行的选项是使用
.on('plotly_relayout',function(){
,从范围选择器按钮获取参数(这些按钮似乎有限,仅从和到目前为止,如果有更好的方法确定起源,请也让我知道,我将在此处更新),然后大致以此为基础,按周对日期进行分类,并调整绘图中的x和y值

这只是一个概念验证的基本实现。在生产中使用它需要重构此代码,以便在设计和页面实现方面使用现有的数据结构

这里有很多工作要做。基本上,它将遍历一组日期来创建星期日箱,其中将保存每周数据(注意,它仍然缺少显示更新来显示从开始日期算起的一周)。一旦有了bin,它将对每个bin范围内的日期进行求和。然后,它将使用
restyle
替换数据集。如果选择的范围不是6m,则它将使用备份数据的a片段,因为它会在适当的位置修改阵列,因此,如果没有备份副本,则它将覆盖数据,并在每个tim中添加一个副本e使用备份

请参阅下面的工作演示

函数和(数组){
返回数组.reduce(函数(和,当前){
返回金额+货币;
},0);
};
Date.MSday=1000*60*60*24;
Date.prototype.floor=函数(){
返回新日期(this.getFullYear()、this.getMonth()、this.getDate());
}
Date.prototype.addDays=函数(天){
var time=+this-+this.floor();
var addedDays=新日期(+this.floor()+Date.MSday*天);
返回新日期(+添加日期+时间);
}
函数WeekFromDates(datesArray,valsArray){
var lastDay=datesArray[datesArray.length-1];
var firstDay=datesArray[0];
var dayOfWeek=firstDay.getDay();
var firstSunday=firstDay.addDays(-dayOfWeek);
var sundays=[];
var currentSunday=第一个星期日;
而(当前周日<最后一天){
星期日。推送(当前星期日);
currentSunday=currentSunday.addDays(7);
}
currentSunday=currentSunday.addDays(7);
星期日。推送(当前星期日);
var-valSets=[];
var n=0;
对于(变量i=1;i170){
//6米
对于(var n=0;n    step: 'day',
    stepmode: 'backward',
    count: 7,
    label: '1w'