1

我有一个包含每日数据的样条图。我的数据是每日刻度。是否有可能让 HC 以每周或每月的刻度显示数据,而不是每天的?按周/月分组的数据应该是过去 7/30 天的总和,而不是平均值。

或者我必须在将其喂给 HC 之前手动对其进行预处理?

编辑:主图表配置:

var chart = new Highcharts.Chart({
    'chart':{
    'renderTo':'container',
    'type':'spline',
    'zoomType':'x'
},

JS Fiddle 示例图表:http: //jsfiddle.net/gqWLU/

4

2 回答 2

2

我们围绕这个尝试了一个 Hack,我们使用了 Highstock 的(Splinechart)RangeSelector、 Event 和DataGrouping。单击每周 rangeselectorButton 时,我们通过setExtremes捕获此事件。捕获事件后将其近似为“总和”。如果您使用两个系列而不是迭代对象。

  events: {
         setExtremes: function (e) {
             if (e.rangeSelectorButton != undefined) {
                 var triger = e.rangeSelectorButton;
                 if (triger.type == 'week') {
                     $.each(this.series, function (index, obj) {
                         obj.options.dataGrouping.units[0] = ['week', [1]];
                     });
                 } else if (triger.type == 'day') {
                     $.each(this.series, function (index, obj) {
                         obj.options.dataGrouping.units[0] = ['day', [1]];
                     });
                 }
             }
         }
     },
于 2015-04-09T09:07:03.637 回答
0

您可以利用plotOptions.spline.dataGrouping.approximationHighstock 中提供的选项并将其设置为“总和”以进行近似,并将数据分组设置为 1 周。不幸的是,我认为核心 Highcharts 中没有这样的功能。

代码

dataGrouping: {
        approximation: "sum",
        enabled: true,
        units: [[
            'week',
            [1]
            ]]
    }

数据分组/聚合 | Highchart & Highstock @ jsFiddle

于 2012-12-24T11:04:50.453 回答