我想从JSON'Wind_direction'值动态更改极坐标图上的startAngle值。
代码如下:
$(function() {
$.getJSON('wind_graph.php?callback=?', function(dataWind) {
var direction = Wind_direction;
var polarOptions = {
chart: {
polar: true,
events : {
load : function () {
setInterval(function(){
RefreshDataWind();
}, 1000);
}
}
},
title: {
text: 'Wind Direction'
},
pane: {
startAngle: direction,
},
xAxis: {
tickInterval: 15,
min: 0,
max: 360
},
plotOptions: {
series: {
pointStart: 0,
pointInterval: 30,
},
}
};
// The polar chart
$('#graph-1').highcharts(Highcharts.merge(polarOptions, {
yAxis: {
tickInterval: 5,
min: 0,
max: 25,
visible: false
},
series: [{
type: 'line',
name: 'Direction',
data: [
[0, 0],
[direction, 20]
],
}
]
}));
function RefreshDataWind()
{
var chart = $('#graph-1').highcharts();
$.getJSON('wind_graph.php?callback=?', function(dataWind)
{
var direction = Wind_direction;
chart.series[0].setData([[0,0],[direction, 20]]);
});
}
});
});
在最后一个函数中,在'chart.series [0] .setData ...下面,我试图添加如下内容:
chart.pane.setStartAngle(direction);
但这会引发错误:“无法读取未定义的属性'startAngle'”
也正在尝试另一个想法:
polarOptions.pane({ startAngle: direction });
但是这里有错误:“ polarOptions.pane不是函数”。
所以我很累。请寻求帮助。
最佳答案
您应该能够使用Chart.update()更新所有图表选项。不幸的是,它似乎对窗格没有任何影响-我报告了问题here。
现在,您可以通过破坏和创建新图表的方式以老式方式更新窗格-http://jsfiddle.net/highcharts/qhY8C/
另一种可能性是尝试解决方法-为窗格设置选项,删除窗格并更新轴-它应使用新选项创建一个新窗格。
const xAxis = chart.xAxis[0];
chart.options.pane.startAngle = 45;
Highcharts.erase(chart.panes, xAxis.pane);
chart.yAxis[0].update(null, false);
xAxis.update();
例如:http://jsfiddle.net/v8L381Lj/