Javascript 模拟多点单击功能,或基于dataMin和dataMax-highcharts下方或上方的特定区域,具有单独的单击值

Javascript 模拟多点单击功能,或基于dataMin和dataMax-highcharts下方或上方的特定区域,具有单独的单击值,javascript,highcharts,Javascript,Highcharts,我正在使用highcharts中的highstock 我想根据单击的图表区域捕获最小值和最大值 假设我当前的graph实例在1-100个数据集中的最小值为15,最大值为80。 现在,如果我点击任何低于15的区域,我应该能够在我的代码中设置一个最小值。所以我可能想做点什么 click: function(e) { ctrl.minSelected = e.yAxis[0].value; } 类似地,若我单击值80以上的区域,我希望触发相同的或另一个单击处理程序来捕获我的最大值 首先,

我正在使用highcharts中的highstock

我想根据单击的图表区域捕获最小值和最大值

假设我当前的graph实例在1-100个数据集中的最小值为15,最大值为80。 现在,如果我点击任何低于15的区域,我应该能够在我的代码中设置一个最小值。所以我可能想做点什么

click: function(e) {
     ctrl.minSelected = e.yAxis[0].value;

}
类似地,若我单击值80以上的区域,我希望触发相同的或另一个单击处理程序来捕获我的最大值


首先,这在高图表中是可能的吗?请指导,如果是,请让我知道我能做到这一点吗?谢谢

我制作了一个非常基本的示例,演示如何获得所需的值。实际的代码和逻辑应该不太难从这里弄清楚

下面的代码将为您提供单击的Y值,以及控制台中的当前极值

再解释一下:

event.yAxis[0]。value
根据yAxis给出Y值,请参阅

chart.yAxis[0].getExtremes()
给出了yAxis极值、图形区域极值和数据(点)极值,请参见


this.update
这是指图表,update允许您更新图表上的任何内容,请参阅。在这里,我们使用它将yAxis max设置为单击位置的值。

只需通过将
zoomType
属性设置为“x”、“y”或“xy”即可启用缩放。您可以在
selection
事件中获取所选区域的最小值和最大值

API参考:

示例:

为什么您会认为这些是隐藏的?这会给我y轴的动态值吗?我所说的
min
指的是用户在低于值15的任何位置上单击的点。类似地,将max value设置为用户在点80以上选择的任何值,现在我这样做是因为一旦图形值实际接触到这两个点,我就想做一些事情。例如,15和80可以切换到另一个高点和低点。实际上,用“高-低”这个词来描述15和80的例子会更好。Min和max是用户选择哦,不,我明白你为什么要发布关于选择的帖子<代码>基于所选图表的面积引入此解决方案。我将选中的内容更正为单击,以避免进一步混淆。所以,希望很明显,没有手动选择,但有基于dataMin或dataMax值的假设的下面和上面部分。现在,经过几个小时,我对这些API术语更加熟悉了。干杯,伙计,我为这个误导性的词道歉。干杯基于我对highcharts术语的更好理解,我对我的问题标题进行了修饰,我正在寻找解决方案。不幸的是,由于我在手机上,昨天无法通过代码级别。虽然在d_paul的回答中提供了更多描述。我发现getExtremes()可能会有帮助。但是我有很多关于dataMax、dataMin以及zoomLevel 1m、5m的内容需要讨论。它们都随产值而变化。还有userMin和userMax。我想,一旦我在某处调用setExtremes,就必须设置它。Idk,只是在玩代码和API引用。通过在yAxis中设置maxPadding选项,say dataMax的输出得到偶数变量。假设每次单击时,它记录98个1m,100个5min,96个所有范围。这是不可预测的。背后的逻辑是什么?指向geteXtrems()的投票结果是一致的。现在我需要弄清楚的是确定我的点击点是否接近dataMin或dataMax。因此,现在如果我的值接近dataMax,我应该将我的ctrl.maxSelected值更新为clicked值,否则单击的值就是我的ctrl.minSelected
chart: {
    events: {
        click: function (event) {
            console.log(event.yAxis[0].value);
            console.log(chart.yAxis[0].getExtremes());
            this.update({yAxis: {max: event.yAxis[0].value}}) 
        }
    }
}