3

さまざまなグラフを含むダッシュボードがあり、それぞれにグラフの種類を変更するドロップダウンが隣接しています。チャートを破棄して新しいチャートを作成するのではなく、チャートを再描画することでこれを達成したいと考えています。

私は最初、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 に答える