我正在Canvas中实现图形。所以我有x轴和y轴。我正在以数组形式转换这两个值。 x轴指向时间,y轴指向体积数据。 你可以看到更多想法的屏幕截图:
此图表基于某些数组绘制。
以前我很有价值:
表示Y轴[377,622,42,188]
用于X轴[“02.20”,“4:30”,“08:50”,“09:10”]
所以我选择了X轴(02.20)和结束时间(9:10)的开始时间,分为几小时,如[“02.20”,“03:00”,“4:30”,“05:00” , “6时00分”, “7点00分”, “8时50分”, “9点10”]。
如果数据不在Y轴阵列中,则Y轴在数组中放0,根据X轴。
call.all('data').get('navigation').then(function(resp){
setTimeout(function(){
var totalVolumeArr = _.map(resp.data,function(res){ return res.tot});
lineData2.labels = _.map(resp.data,function(res,idx){
var time = [];
if (typeof resp.data[idx - 1] !== 'undefined') {
if (((resp.data[idx - 1])._id.hr + 1) !== res._id.hr) {
for (var i = resp.data[idx - 1]._id.hr + 1; i < res._id.hr; i++) { time.push('0' +i + ':00');
}
}
}
var x = time.push(('0' + res._id.hr).slice(-2) + ':' + (''+ res._id.slot).slice(-2)+'0');
return time;
});
var flatArray = [].concat.apply([], lineData2.labels);
_.map(resp.data,function(res,idx){
var time=[];
var tempArr=[];
if (typeof resp.data[idx - 1] !== 'undefined') {
if (((resp.data[idx - 1])._id.hr + 1) !== res._id.hr) {
for (var i = resp.data[idx - 1]._id.hr + 1; i < res._id.hr; i++) {
if(jQuery.inArray('0' +i + ':00', flatArray) !== -1)
{
var indexValue='0' +i + ':00';
var indexPosition= flatArray.indexOf(indexValue);
totalVolumeArr.splice(indexPosition, 0, "0"); //push the 0 volume value into array of totalvolumearray
}
}
}
}
return tempArr;
})
xAxisValue = flatArray;
yAxisValue = totalVolumeArr;
});
现在我想重新排列这两个数组flateArray和totalValumeArr。
你可以认为xAxisValue = [“02.20”,“4:30”,“08:50”] yAxisValue = [377,622,42]
付诸实施: **
xAxisValue = [ “2点20分”, “02:30”, “二点四十”, “二点50分”, “03:00”, “3时10”, “3时10”, “3时20”,” 03:30" , “03:40”, “03:50”, “04:00”, “04:10”, “04:20”, “04:30”, “04:40”,“04: 50" , “05:00”, “5时10分”, “五点20”, “05:30”, “5点40”, “五时50”, “06:00”, “6点10” , “06:20”, “06:30”, “06:40”, “06:50”, “07:00”, “07:10”, “07:20”, “07:30”,” 07:40" , “07:50”, “08:00”, “08:10”, “08:20”, “08:30”, “08:40” “8点50”]
** **
yAxisValue = [377,0,0,0,0,0,0,0,0,0,0,0,0,0,622,0,0,0,0,0,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,42]
** 上面的代码工作正常,如果我想看到每小时的基础。但现在我想设置数据间隔10分钟。如果数据不存在则应该有0个数据量的时间。请分享你的逻辑。哪种方法最好?