我目前正致力于在高级图表中构建图表,我按周和按月绘制数据。这意味着每个月都会有4.3周的情节。我的问题是,是否有一种方法可以使月份数据具有与周相似的长度(也就是相同的起始点和相同的结束点),而不是在3-4个数据点之后的月经停止 - 大约15点后停止?
这是每日/每周,但会更改为每周/每月。同样的原则适用。 :)
谢谢!
答案 0 :(得分:0)
所以我的目标是将每周平均数据与每日数据一起列出。虽然我挣扎了很长时间,但解决方案相当简单。
在图表选项中,我需要使用日期时间:
xAxis: {
type: 'datetime',
dateTimeLabelFormats: {
month: '%e. %b',
year: '%b'
}
}
在此之后,我不得不格式化我的日期(是mysql格式的,所以YYYY-MM-DD / YYYY-WW)。我最大的障碍是数据是 1)来自API端点的动态 2)不同的数据点(周与天)
由于我可以控制API端点,我可以对那里的日期执行更改,以避免客户端的性能损失。数据需要在时间戳w / ms,为此我使用了momentjs。以下示例为数周:
let d = moment(i.date, 'YYYY-WW').format('YYYY-MM-DD')
let dateFormat = new Date(d);
let date = moment(d).day(parseInt(goToDay)).format('YYYY-MM-DD').split('-')
let utcDate = Date.UTC(parseInt(date[0]), parseInt(date[1]) - 1, parseInt(date[2]))
日子比较容易:
let date = i.date.split('-');
let utcDate = Date.UTC(date[0], date[1] - 1, date[2])
在此之后,只需将数据发送回客户端,然后像这样循环(注意我使用的是角度,没有角度的高级图表的程序会略有不同):
$scope.ChartConfig.series = [];
$scope.ChartConfig.series.push({
name: 'Daily',
title: 'Daily',
data: data.daily.data
})
$scope.ChartConfig.series.push({
name: 'Weekly',
title: 'Weekly',
data: data.weekly.data
});