2

我有一个 highstock 图表女巫candlestick数据类型。当我将鼠标悬停在数据点上时,我想突出显示该点的背景。这就是工具提示 -> 十字准线的作用:

tooltip: {
    crosshairs: true
}

但唯一要设置的宽度选项是固定宽度。请参阅http://jsfiddle.net/8YBd7/。此固定宽度适用于初始缩放,但是当我更改缩放时,宽度不会更新为新的点宽度。

当我设置 100% 宽度时,十字准线将填满整个图表区域:

tooltip: {
    crosshairs: {
        width: '100%'
    }
}

是否有另一种选择如何通过更改其背景或将宽度设置为 pointPixelInterval 或其他方式来突出显示当前数据点?

4

2 回答 2

0

同时,我提出了一个肮脏的解决方法,因此欢迎改进:

    xAxis: {
            events: {
                afterSetExtremes: function() {
                    this.chart.tooltip.crosshairs = [];
                    this.chart.options.tooltip.crosshairs.width = (this.width / (this.series[0].points.length-1));
                }
            }
        }

http://jsfiddle.net/QbdEu/1/

每当更改缩放时,都会根据图表宽度和显示的数据点数重新计算宽度。调用时宽度没有更新redraw(),所以旧的十字准线需要去掉。

于 2013-06-04T11:16:16.060 回答
0

您是否尝试过使用允许绘制任何形状和定义宽度的Renderer http://api.highcharts.com/highstock#Renderer.rect() ?只有您需要以像素 frpm(chart.series[0].data[0].graphic) 为单位获取点宽度,然后设置正确的“形状”宽度。

于 2013-06-04T11:52:51.243 回答