我试图在移动 highstock 滑块时绘制 pie 图表。
首先,每件事情都行,我正在获得highStock的价值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
?
答案 0 :(得分:3)
您似乎覆盖了chart
变量。 Use a different variable for the pie and the stock chart.
在您的情况下,您也可以use this
inside the chart.events.redraw
指向处理程序中的当前(甚至正在处理的)图表。 Demo @ 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
事件,因为您想在滑块的幻灯片上执行某些操作。 / p>
如文档中所述,事件对象包含新的最小值和最大值event.min
和event.max
,this
表示处理程序内的轴。
这就是你的代码的样子
xAxis: [
{
events: {
setExtremes: function(event) {
console.log(this);
console.log("userMin = " + event.min);
console.log("userMax = " + event.max);
drawPie();
}
}}
],
答案 1 :(得分:0)
在将数据分配给系列之前,您似乎正在调用console.log。
您是否可以在已将数据分配到系列后尝试调用console.log?
series : [{
name : 'AAPL',
data : data,
tooltip: {
valueDecimals: 2
}
}]
在调用console.log
之前提及此问题