3

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

我首先偶然发现了一个似乎来自 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 以来发生了变化,但那是在黑暗中的总刺。

任何帮助将不胜感激。

4

1 回答 1

0

在这里查看我之前的答案。它解释了如何使用 series.update() 函数来改变图形的类型。

于 2014-08-06T18:02:44.197 回答