动态更改Highcharts数据系列类型

时间:2013-03-14 20:54:24

标签: javascript jquery highcharts

我有多个系列的Highcharts和每个系列的'select'。我的目标是通过'select'改变系列类型。

$('#ChType').change(function () {
    var series = chart.series[0]
    var newType = $('#ChType').val();
    changeType(series, newType);
})

$('#ChType2').change(function () {
    var series = chart.series[1]
    var newType = $('#ChType2').val();
    changeType(series, newType);
})

function changeType(series, newType) {
    var dataArray = [],
        points = series.data;
    series.chart.addSeries({
        type: newType,
        name: series.name,
        color: series.color,
        data: series.options.data
    }, false);
    alert(series.name);
    series.remove();
}

据我所知,每次更改类型时,系列都会从数组中的当前位置移除并添加到结尾。目前我只能更改位置系列[0]中的系列。

如何更改任何其他系列而不仅仅是系列[0]?

我确实看到了类似的问题here,但无法让它发挥作用。

我在jsFiddle中的示例代码。

2 个答案:

答案 0 :(得分:16)

您可以使用包含series.update()方法的v3.0 highcharts,它允许动态更改图表类型。

http://jsfiddle.net/8Sg8K/1

chart.series[0].update({
                type: "column"
            });

答案 1 :(得分:0)

为什么不在类似问题中包含您链接到的循环?

 $('#ChType').change(function(){
     var series;

     for ( i = 0 ; i < chart.series.length ; i++ ) {
            if ( chart.series[i].name == 'MyData1' ) {
                series = chart.series[i];

            }                
        } 
                 //var series = chart.series[0]
                 var newType = series.type == $('#ChType').val() ? $('#ChType').val()

为每种类型设置适当的位置 - http://jsfiddle.net/waBck/5/