我正在尝试根据顶部绘图线的位置动态调整HighCharts折线图上背景图像的大小。我尝试调整的图像是下图中的钟形曲线。



我无法将图像的高度设置为静态值,因为屏幕的大小可以更改,并且顶部绘图线也会随着时间而变化。

目前,我正在使用以下外部函数设置绘图线的位置:

plotLines: [
                value: upperControl3()}, {
                color: '#ccc',
                zIndex: 3,
                width: 1,
                label: {
                    text: '-2s',
                    x: 520,
                    y: 3
                }


我能够找到的与最上图线的y值最接近的是dataMax值,但是在每次图表加载时都保持不变。
我一直在尝试使用图表末尾的功能覆盖图像并调整其大小,如下所示:

function(chart) {

   console.log(chart.yAxis[0].plotLinesAndBands[7].axis.plotLinesAndBands[0].axis);

   var h = chart.yAxis[0].plotLinesAndBands[7].axis.plotLinesAndBands[0].axis.dataMax;

   var y = chart.yAxis[0].axisTitle.y + extra;

   // X, Y, Width, Height
   chart.renderer.image('images/bell.jpg', 60, y, 200, h).add();

}


有什么办法可以在高图中找到绘图线的坐标?

最佳答案

您可以使用plotLinesAndBands对象,其中保留了绘图线。在具有值的选项中,可以通过toPixels函数将其转换为像素值。

var $button = $('#button'),
    $report = $('#report'),
    chart = $('#container').highcharts();

$button.click(function () {
    chart.xAxis[0].addPlotLine({
        value: 5.5,
        color: 'red',
        width: 2,
        id: 'plot-line-1'
    });

    var plotline = chart.xAxis[0].plotLinesAndBands[0];

    $report.html('Value: ' + plotline.options.value + ' Pixels: ' + chart.xAxis[0].toPixels(plotline.options.value));
});


http://jsfiddle.net/HhP39/1/

关于javascript - 在HIghCharts.js中找到绘图线的Y轴值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22202732/

10-09 10:10