0

我正在尝试在移动highstock滑块时绘制饼图。

起初一切都很好,我得到了 highStock's axis.extremes.userMin&的值,userMax正如预期的那样

代码

    var extremes = chart.xAxis[0].getExtremes();
    console.log(extremes);
    console.log(chart.xAxis[0]);
    console.log("userMin = " + extremes.userMin);
    console.log("userMax = " + extremes.userMax);

但是,一旦绘制了饼图,我就会得到高于undefined控制台中的值。什么可能导致这种情况或者我怎样才能得到userMin/ userMax

jsFiddle 演示

4

2 回答 2

3

您似乎正在覆盖您的chart变量。为饼图和股票图表使用不同的变量。

在您的情况下,您也可以在处理程序中使用thischart.events.redraw指向当前(甚至正在处理的)图表。演示@jsFiddle

redraw: function (event) {
    if (this.xAxis) {
        var extremes = this.xAxis[0].getExtremes();    
        console.log(extremes);
        console.log(chart.xAxis[0]);
        console.log("userMin = " + extremes.userMin);
        console.log("userMax = " + extremes.userMax);
        drawPie();

    }
}

处理用例的更好或更正确的方法是将处理程序附加到xAxis.events.setExtremes事件而不是chart.events.redraw事件,因为您想在滑块的幻灯片上执行某些操作。

如文档中所述,事件对象包含新的最小值和最大值event.minevent.maxthis表示处理程序内的轴。
这就是您的代码的样子

       xAxis: [
            {
            events: {
                setExtremes: function(event) {
                        console.log(this);
                        console.log("userMin = " + event.min);
                        console.log("userMax = " + event.max);
                        drawPie();                       
                }
            }}
        ],

处理滑块事件@jsFiddle

于 2012-09-21T19:46:19.773 回答
0

看起来您在将数据分配给系列之前正在调用 console.log 。

在您已经将数据分配给系列之后,您能否尝试调用 console.log ?

series : [{
            name : 'AAPL',
            data : data,
            tooltip: {
                valueDecimals: 2
            }
        }]

在调用 console.log 之前提及这一点

于 2012-09-21T18:02:07.743 回答