Highcharts,系列与不同大小的数据

时间:2016-08-24 19:38:08

标签: highcharts highcharts-ng

我目前正致力于在高级图表中构建图表,我按周和按月绘制数据。这意味着每个月都会有4.3周的情节。我的问题是,是否有一种方法可以使月份数据具有与周相似的长度(也就是相同的起始点和相同的结束点),而不是在3-4个数据点之后的月经停止 - 大约15点后停止?

目前它看起来像这样: chart

这是每日/每周,但会更改为每周/每月。同样的原则适用。 :)

谢谢!

1 个答案:

答案 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
});

这样可以完美呈现图表,就像我想要的那样: justthewayIwantit