Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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
flot-Javascript中的直方图_Javascript_Date_Flot - Fatal编程技术网

flot-Javascript中的直方图

flot-Javascript中的直方图,javascript,date,flot,Javascript,Date,Flot,我试图在flot中创建一个柱状图,其中的条形图是按天组织的 我找不到一种方法将值合并为每天1个条 __ 有什么想法吗?你的问题可能有一些具体的问题,在这种情况下,我可能错过了。但是,如果您刚刚得到一个带有日期的javascript数据结构,并且希望将它们聚合成完整的天数,那么您可以这样做 假设以下数据源: var data = []; data.push({ value: 4, date: new Date(1278940338413) }); // july 12, 15:12:18 data

我试图在flot中创建一个柱状图,其中的条形图是按天组织的

我找不到一种方法将值合并为每天1个条

__


有什么想法吗?

你的问题可能有一些具体的问题,在这种情况下,我可能错过了。但是,如果您刚刚得到一个带有日期的javascript数据结构,并且希望将它们聚合成完整的天数,那么您可以这样做

假设以下数据源:

var data = [];
data.push({ value: 4, date: new Date(1278940338413) }); // july 12, 15:12:18
data.push({ value: 7, date: new Date(1278340738313) }); // july 5, 16:38:58
data.push({ value: 2, date: new Date(1278940331313) }); // july 12, 15:12:11
然后,您可以编写如下函数,将数据结构解析为新格式:

function aggregateByDate(source) {
    var aggregateHash = {};

    for(var i = 0; i < source.length; i++) {
    var item = source[i];
        var compareString = item.date.getFullYear() + '-' + (item.date.getMonth()+1) + '-' + item.date.getDate();

        if(!(compareString in aggregateHash)) {
           aggregateHash[compareString] = [];
        }

        aggregateHash[compareString].push(item);
    }

    var newSource = [];
    for(var key in aggregateHash) {

       var sum = 0;

       for(var i = 0; i < aggregateHash[key].length; i++) {
          sum += aggregateHash[key][i].value;
       }

       newSource.push({
          total: sum,
          count: aggregateHash[key].length,
          items: aggregateHash[key],
          dateString: key
       });
    }

    return newSource;
}

它所做的是用输出中表示为键的
dateString
创建一个散列,并在源集合上迭代,用每个散列键的数组填充该散列。然后,它迭代散列中的所有键,并创建一个包含散列组结果的对象数组。

您的问题可能有一些特定于flot的内容,在这种情况下,我可能遗漏了这些内容。但是,如果您刚刚得到一个带有日期的javascript数据结构,并且希望将它们聚合成完整的天数,那么您可以这样做

假设以下数据源:

var data = [];
data.push({ value: 4, date: new Date(1278940338413) }); // july 12, 15:12:18
data.push({ value: 7, date: new Date(1278340738313) }); // july 5, 16:38:58
data.push({ value: 2, date: new Date(1278940331313) }); // july 12, 15:12:11
然后,您可以编写如下函数,将数据结构解析为新格式:

function aggregateByDate(source) {
    var aggregateHash = {};

    for(var i = 0; i < source.length; i++) {
    var item = source[i];
        var compareString = item.date.getFullYear() + '-' + (item.date.getMonth()+1) + '-' + item.date.getDate();

        if(!(compareString in aggregateHash)) {
           aggregateHash[compareString] = [];
        }

        aggregateHash[compareString].push(item);
    }

    var newSource = [];
    for(var key in aggregateHash) {

       var sum = 0;

       for(var i = 0; i < aggregateHash[key].length; i++) {
          sum += aggregateHash[key][i].value;
       }

       newSource.push({
          total: sum,
          count: aggregateHash[key].length,
          items: aggregateHash[key],
          dateString: key
       });
    }

    return newSource;
}

它所做的是用输出中表示为键的
dateString
创建一个散列,并在源集合上迭代,用每个散列键的数组填充该散列。然后,它迭代散列中的所有键,并创建一个包含散列组结果的对象数组。

这完全取决于“值”是什么。这完全取决于“值”是什么。