1. ホーム
  2. javascript

Highcharts - redraw() vs. new Highcharts.chart

2023-08-29 16:27:54

質問

highchartsのチャートを更新する正しい方法を理解するのに苦労しています。 チャートをレンダリングした後、何らかの方法でそれを更新したいとします。 たとえば、データ系列の値を変更したいとか、dataLabels を有効にしたいとか。

今のところ、これを行う方法を見つける唯一の方法は、チャートのオプションを変更して new Highcharts.chart を使用して、highcharts に再描画するように指示することです。

しかし、これは行き過ぎではないかと思っています。 new Highcharts.chart . 私は redraw() メソッドがあることに気づきましたが、うまく動作させることができないようです。

どんな助けでも、とても感謝しています。

ありがとうございます。

ロビン

サンプルコードは以下のとおりで、一番下にjsFiddleがあります。

$(document).ready(function() {

chartOptions = {
    chart: {
        renderTo: 'container',
        type: 'area',
    },
    series: [{
        data: [1,2,3]
    }]
};

chart1 = new Highcharts.Chart(chartOptions);


chartOptions.series[0].data= [10,5,2];
chart1 = new Highcharts.Chart(chartOptions);

//The following seems to have no effect
chart1.series[0].data = [2,4,4];
chart1.redraw();

});​

http://jsfiddle.net/sUXsu/18/

[編集]です。

この質問を将来見る人のために、dataLabelsを隠したり表示したりするメソッドがないことは知っておく価値があります。 以下はその方法を示しています。 http://jsfiddle.net/supertrue/tCF8Y/

どのように解決するのですか?

chart.series[0].setData(data,true);

setData メソッド自身が再描画メソッドを呼び出します。