2012-04-12 9 views
5

ハイチャートの円グラフを更新する方法を工夫しようとしていますが、私の人生は正しいとは言えません。Highcharts:setData()で円グラフを更新する

私はドキュメントを見て、細かい部分を更新するために棒グラフや線グラフ、スプライングラフを取得できましたが、この機能を円グラフに使用すると機能しません。アイテムはそうのようなシリーズに等しい

item.setData([["none", 100]], true); 

::私は現在で摂食しています

デモに示すよう

$.each(browser_chart.series, function(i, item){ 
    if(item.name == 'Browser share'){ 
     console.log(data.browsers); 
     item.setData([["none", 100]], true); 
    } 
}); 

は、円グラフのデータをフォーマットする方法です。問題はシリーズを正しく読むことができないことです。

item.setData([\"none\", 100], true); 

そして何かをするようだが(もちろん、それは間違っていることを意味する)、右のxとyの値を読み取ることができません:私はしてみてください。

誰もがこの作業を行う方向で私を指摘できますか?

おかげで、

答えて

7

編集:
新しいデータを設定するときは、この場合、すべてのパイの部品の配列の配列として設定する必要があります。
私のExampleには6つのカテゴリがあるので、それらのすべてのデータを設定する必要があります。私はしかし、私の質問は、私はきちんと説明しなかったことを少しより多くの関与Ricardos答えをマークしている

var seriesData = []; 
$.each(browser_chart.series, function(i, item) { 
    if(item.name == 'Browser share'){ 
     seriesData.push(["serie"+i, someNumber]); 
    } 
}); 
chart.series[0].setData(seriesData, true); 
+0

うーんしかし、あなたの例では、その理由を教えなかった:私もこれはHighChartsの既知の問題であることが分かりました。円グラフを更新すると、シリーズのポイントが実際には欠落しています。これは、一部のブラウザには、ユーザーが選択した日付範囲の値がないためです。それは私がそれが正しく更新するように見えなかったし、厄介なエラーをスローしていた私は元々よりも少ないポイントで更新するようだ。とにかくこれについて知っていますか? – Sammaye

+0

私は新しいチャートでHighcharts.Chart()を再作成することで、異なる点で作業することができましたが、ちょっと醜いですが、これを行う唯一の方法はわかりますか? – Sammaye

0


ので、この場合には、あなたのような何かをしなければなりません。

PHPバックエンドによって生成されたJSONからAJAXを使用して円グラフを更新していました。新しいデータを円グラフに適用すると、破損します。私は、私はちょうど円グラフを更新することはできませんポイントの数が異なるので、私は見つけることができたRicardos答えを使用して

私はそうのようにそれを作り直す必要がありますされています。これはあなたをできるようになります

browser_chart_config.series[0].data = data.browsers; 
browser_chart = new Highcharts.Chart(browser_chart_config); 

ポイント数が異なる場合はグラフを更新してください。

はそれが役に立てば幸い、

EDIT:動作しませんでしたhttps://github.com/highslide-software/highcharts.com/issues/542

+0

これは、すべてのセリデータを設定した場合にのみ機能します。したがって、あなたのケースでは、チャートを破棄して再度実行する必要があります。 :/ –

関連する問題