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

Highcharts Highstock在数据分组时获取详细信息,highcharts,highstock,Highcharts,Highstock,在单击事件中,“this.x”是数据组中的第一个点 数据分组发生在您播放滚动时,例如,如果选择“显示所有数据”,则每个点表示一周,但您有关于每一天的信息,因此在这一点中,表示的是所有周的信息,而不是每天的信息 ?如何单击数据组中的最后一点?我能得到这个小组(本周)的最后一点吗?(以周为例,您可以在非常见时间间隔内播放滚动分组数据) 您可以使用this.series events: { click: function (even

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

数据分组发生在您播放滚动时,例如,如果选择“显示所有数据”,则每个点表示一周,但您有关于每一天的信息,因此在这一点中,表示的是所有周的信息,而不是每天的信息

?如何单击数据组中的最后一点?我能得到这个小组(本周)的最后一点吗?(以周为例,您可以在非常见时间间隔内播放滚动分组数据)


您可以使用
this.series

               events: {
                    click: function (event) {
                        var last = this.series.data[this.series.data.length - 1];
                        alert(last.x + ' ' + last.y);
                    }
                }

您可以使用
this.series

               events: {
                    click: function (event) {
                        var last = this.series.data[this.series.data.length - 1];
                        alert(last.x + ' ' + last.y);
                    }
                }

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

  • 您有
    this.x
    值,现在循环查看
    this.series.options.data
    并将x值与
    this.x
  • 比较中的最后一个对象(
    this.x>this.series.options.data[index][0]
    )将是您要查找的点

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

  • 您有
    this.x
    值,现在循环查看
    this.series.options.data
    并将x值与
    this.x
  • 比较中的最后一个对象(
    this.x>this.series.options.data[index][0]
    )将是您要查找的点

经过深入测试以及多次实施和重新实施后。。。结论

您可以访问points变量。这是一个解决方案,因为它总是在屏幕上绘制点,当数据分组发生时,您可以访问它而不做任何更改

var point = event.point;
var points = event.point.series.points;
var index = points.indexOf(point);
var index_next = index+1;
下面是一个工作示例:

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

series.data 
这里是文件:

经过深入测试以及多次实施和重新实施后。。。结论

您可以访问points变量。这是一个解决方案,因为它总是在屏幕上绘制点,当数据分组发生时,您可以访问它而不做任何更改

var point = event.point;
var points = event.point.series.points;
var index = points.indexOf(point);
var index_next = index+1;
下面是一个工作示例:

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

series.data 
这里是文件:

无论单击何处,警报窗口中都会显示这些数据。它并不总是第一个,也可能是最后一个。谢谢你的回答。我的问题出现在你有数据分组的时候。我已经修改了这个问题来澄清它。无论你点击哪里,警报窗口中都会显示这些数据。它并不总是第一个,也可能是最后一个。谢谢你的回答。我的问题出现在你有数据分组的时候。我已经修改了这个问题来澄清它。谢谢你的回答。我的问题是当你有数据分组时,我不想要意甲的最后一分,我想要小组的最后一分。我编辑了我的问题以澄清它。@JDL您可能希望更新您的FIDLE以获得分组数据,因为它没有说明问题您是对的,我已更新JSFIDLE以显示所有数据,因此默认情况下打开JSFIDLE时会发生数据分组。谢谢你的建议,谢谢你的回答。我的问题是当你有数据分组时,我不想要意甲的最后一分,我想要小组的最后一分。我编辑了我的问题以澄清它。@JDL您可能希望更新您的FIDLE以获得分组数据,因为它没有说明问题您是对的,我已更新JSFIDLE以显示所有数据,因此默认情况下打开JSFIDLE时会发生数据分组。谢谢你的建议。你的答案似乎是在这之前给我一个点。x,我可以再计算一点,试着得到下一个点,然后迭代数据,在下一个点之前得到这个点。(难以在文本中解释)。问题是,每次需要获得数据组的极值时,对30000个寄存器进行迭代是不实际的。您可以访问
this.series.currentDataGrouping
,还有一些关于使用的数据分组的更多信息,也许有些东西可以帮助您获得更好的性能。您的答案似乎是在这之前给我一个点。x,我可以再计算一点,然后尝试获取下一个点,并迭代数据以在下一个点之前获取该点。(难以在文本中解释)。问题是,每次我需要获得数据组的极限值时,对300.000个寄存器进行迭代是不实际的。您可以访问
this.series.currentDataGrouping
,并且有一些关于使用的数据分组的更多信息,也许有些东西可以帮助您获得更好的性能。