如何以编程方式更改Highcharts中的颜色选项?

问题描述:

在highcharts初始化中,我只设置了一种颜色的数组。我想用图表悬停事件中的另一个数组来更改此值。换句话说,图表是默认的单色,并且在盘旋之后它变得多彩。如何以编程方式更改Highcharts中的颜色选项?

config = { 
    colors: ["#C0C0C0"] 
}; 

chart = $('#chart').highcharts(config).highcharts() 

$('#chart').hover(function(){ 
    chart.options.colors = ["#E84C3D", "#C1392B", '#D25400', "#E67F22", "#F39C11"] 
}, function(){ 
    chart.options.colors = ["#C0C0C0"] 
}); 

不幸的是,它不起作用。我应该怎么做?

+3

您必须更新每个元素的颜色选项,然后重新绘制图表。绘制图表后,颜色选项不会再次读取,直到重绘。不太确定单色图表对每个人都有用。 – wergeld 2014-10-27 15:02:17

您可以设置plotOptions事件:

plotOptions: { column:{colorByPoint:true}, series: { animation:false, events: { mouseOver: function(e) { //console.log(chart.options); var options = chart.options; if(options.colors[0]!='#E84C3D') {
options.colors=['#E84C3D','#C1392B','#D25400','#E67F22','#F39C11']; chart = new Highcharts.Chart(options); } }, mouseOut: function(e) { var options = chart.options; if(options.colors[0]!='#C0C0C0') {
options.colors=['#C0C0C0']; chart = new Highcharts.Chart(options); } } } } }

演示http://jsfiddle.net/eNMvw/134/

+0

它返回错误'TypeError:b是未定义的'并且在jsfiddle中同时工作。 – 2014-10-28 11:57:51

创建图表多时间的Instad,更好地利用series.update()每条渲染。