9

複数のシリーズを含むハイチャートがあり、シリーズごとに「選択」しています。私の目的は、「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]の位置にあるシリーズのみを変更できます。

series[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 に答える