我正在HighCharts设置上编写一个点击事件,该设置有两个不同的系列,一个在另一个之上。我希望活动始终在顶级系列上显示一条消息,即使他们点击底部系列也是如此。
我使用的代码如下:
chart = new Highcharts.StockChart({
chart: {
renderTo: 'container',
events: {
click: function(event) {
// perform actions
this.chart.series[1].setData([{
x: event.point.x,
y: ??
}]);
}
...
我想要做的是根据他们在图表上点击的位置使用第一个系列中的Y值。如何根据这些信息查找Y值?
基本上,如果我点击图表上的某个点,我怎么能根据它的X值在图表上的一个系列中查找一个点。
答案 0 :(得分:7)
系列对象有一个点对象数组,基本上包含该系列中的所有点,一旦从事件对象中获取给定系列的xValue,就可以迭代这些点来找到最接近的{{ 1}}并返回其对应的x
值
代码段:
y
用法:
function getYValue(chartObj,seriesIndex,xValue){
var yValue=null;
var points=chartObj.series[seriesIndex].points;
for(var i=0;i<points.length;i++){
if(points[i].x>=xValue)break;
yValue=points[i].y;
}
return yValue;
}
答案 1 :(得分:0)
这应该使用xValue=0
function getyValue(chartObj,seriesIndex,xValue){
var yValue=null;
var points=chartObj.series[seriesIndex].points;
for(var i=0;i<points.length;i++){
if(points[i].x>xValue)
{
break;
}
else{
if(points[i].x==xValue)
{
yValue=points[i].y;
break;
}
}
yValue=points[i].y;
}
return yValue;
}