高斯托克在数据分组时获取详细信息



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

使用

滚动时会发生 data分组,例如,如果选择"显示所有数据",则每个点代表一周,但你有关于每天的信息,因此在此点中表示所有周而不是每天的信息。

¿如何点击数据组中的最后一个点?

¿我可以得到这个组中表示的最后一个点吗(本周)?(周是一个例子,当你玩滚动分组数据时,可能会发生在非公共间隔

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

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

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

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

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 变量,因为它会根据裁剪阈值和数据数量而变化。

series.data 

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

没有简单的方法可以获取它,但您可以执行以下操作:

  • 您有this.x值,现在循环this.series.options.data并将 X 值与您的this.x进行比较
  • 该比较中的最后一个对象(this.x > this.series.options.data[index][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/

最新更新