さまざまなグラフを含むダッシュボードがあり、それぞれにグラフの種類を変更するドロップダウンが隣接しています。チャートを破棄して新しいチャートを作成するのではなく、チャートを再描画することでこれを達成したいと考えています。
私は最初、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 から縦棒グラフのデータが変更されていると思われますが、それは暗黒面での完全な刺し傷です。
どんな助けでも大歓迎です。