更改图表类型并使用Highcharts中的多个系列重绘

时间:2013-04-08 23:24:09

标签: javascript jquery highcharts

我有一个带有各种图表的仪表板,每个图表都有一个相邻的下拉列表来更改图表的类型。我希望通过重新绘制图表而不是破坏它并创建一个新图表来实现这一目标。

我首先偶然发现了一个似乎来自Highcharts团队的解决方案,但在调查中,似乎实际上已被打破。从选择中选择“列”后,图表将重新渲染而不显示第一个系列数据。我发现这是一个一致的问题... highcharts只想以他们使用“addSeries”方法的方式呈现最后一个系列:

for(var i=0;i<series.length;i++)
{
    serie = series[0];
    serie.chart.addSeries({
        type: newType,
        name: serie.name,
        color: serie.color,
        data: serie.options.data
    }, false);

    serie.remove();
}

var chart = new Highcharts.Chart(options, function(chart){

    $('#chartType').change(function(){
        changeType(chart.series, this.value);
    });

});

尝试在选择此处选择“列”:http://jsfiddle.net/2hLr5/

我还发现有人使用较旧版本的highcharts和jQuery 1.7.1完成了这项工作。您可以在此处查看他的工作示例:http://highcharts.com/jsbin/etulob/edit#javascript,live

在复制他的代码以供我使用时,我发现jQuery 1.9.1会将图表从原始列复制到折线图中,但在尝试从折线图切换回列时会发生阻塞。你可以在这里看到:http://highcharts.com/jsbin/etulob/9/edit#javascript,live

我最好的猜测是,自从以前版本的Highcharts以来,柱形图的数据已经发生了变化,但那是在黑暗中完全刺伤。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

请参阅我之前的回答here。它解释了如何使用series.update()函数来更改图形类型。