0

point.plotY当我点击RangeSelectorHighstock时,我总是得到错误的位置。

请看这个小提琴

我尝试在setExtremes: function (e). 当我单击6m范围选择器时,在萤火虫控制台中我打印最后一个点对象和 point.plotY

可以看到点对象和plotY中PlotY的值是不同的。我还画了一条从 开始的路径 [chart.plotLeft + chart.plotWidth, chart.plotTop + point.plotY],它似乎与系列的最后一点不匹配。

xAxis: {
                events: {

                    setExtremes: function (e) {
                        console.log('change');
                        $("#test").remove();

                        $(chart.series).each(function (i, serie) {
                            point = serie.data[serie.data.length - 1];
                            if (point) {
                                console.log(point);
                                console.log(point.plotY);
                                chart.renderer.path(['M', chart.plotLeft + chart.plotWidth, chart.plotTop + point.plotY, 'l', 1, 1])
                                    .attr({
                                    'stroke-width': 10,
                                    stroke: 'red',
                                    id: 'test'
                                })
                                    .add();
                            }

                        });
                    }

                }
            },
4

1 回答 1

0

我将您的代码更改为使用xAxis.events.afterSetExtremes,而不是xAxis.events.setExtremes因为您可能指的是视口中的最后一点,因此更改serie.dataserie.points

$(chart.series).each(function (i, serie) {
    point = serie.points[serie.points.length - 1];
    if (point) {
        console.log(point);
        console.log(point.plotY);
        chart.renderer.circle(chart.plotLeft + chart.plotWidth, chart.plotTop + point.plotY, 5)
            .attr({
            'stroke-width': 5,
            stroke: 'red',
            id: 'test'
        }).add();
    }
});

@jsFiddle

于 2013-05-11T14:38:41.963 回答