Highstock在数据分组时获取详细信息

时间:2013-09-18 18:56:40

标签: highcharts highstock

在点击事件中,“this.x”是数据组中的第一个点。

当您使用滚动进行数据分组时,例如,如果选择显示所有数据,每个点代表一周,但您有关于每一天的信息,因此在这一点上代表整周而不是每一天的信息。

¿我怎么能点击数据组中的最后一个点? ¿我能否得到这一组中的最后一点(本周)? (周是一个例子,当您使用滚动分组数据进行播放时,可以在非常见的时间间隔内发生)

            plotOptions : {
                series : {
                    point : {
                        events : {
                            click : function(event) {
                                alert(this.x + '  ' + this.y);
                                //HERE?
                            }
                        }
                    }
                }
            },

http://jsfiddle.net/JorgeDuenasLerin/QA2Qa/13/

3 个答案:

答案 0 :(得分:3)

经过深度测试和几次实施和重新实现......结论。

您可以访问points变量。这是解决方案,因为它始终在屏幕上绘制点,并且您可以在数据分组发生时无需更改即可访问它。

var point = event.point;
var points = event.point.series.points;
var index = points.indexOf(point);
var index_next = index+1;

这是一个工作示例: http://jsfiddle.net/JorgeDuenasLerin/QA2Qa/88/

您无法使用series.data变量,因为它会根据cropThreshold和数据数量而变化。

series.data 

这里doc: http://api.highcharts.com/highstock#Series::data

答案 1 :(得分:1)

没有简单的方法可以获得它,但这是你可以做的:

  • 您有this.x值,现在循环显示this.series.options.data并将x值与您的this.x进行比较
  • 来自该比较的最后一个对象(this.x > this.series.options.data[index][0])将指向您正在寻找

答案 2 :(得分:0)

您可以使用this.series

访问点击事件中的系列数据
               events: {
                    click: function (event) {
                        var last = this.series.data[this.series.data.length - 1];
                        alert(last.x + ' ' + last.y);
                    }
                }

http://jsfiddle.net/38FmW/