9

我有多个系列的 Highcharts 和每个系列的“选择”。我的目标是通过“选择”更改系列类型。

$('#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();
}

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

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

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

我在jsFiddle中的示例代码。

4

2 回答 2

17

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

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

chart.series[0].update({
                type: "column"
            });
于 2013-03-15T10:53:55.547 回答
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/

于 2013-03-14T22:13:53.177 回答