flot-Javascript中的直方图
我试图在flot中创建一个柱状图,其中的条形图是按天组织的 我找不到一种方法将值合并为每天1个条 __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
有什么想法吗?你的问题可能有一些具体的问题,在这种情况下,我可能错过了。但是,如果您刚刚得到一个带有日期的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
创建一个散列,并在源集合上迭代,用每个散列键的数组填充该散列。然后,它迭代散列中的所有键,并创建一个包含散列组结果的对象数组。这完全取决于“值”是什么。这完全取决于“值”是什么。