78

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

現時点でこれを行う方法を理解できる唯一の方法は、チャート オプションを変更し、使用new Highcharts.chartしてハイチャートに再描画を指示することです。

ただし、これはやり過ぎではないかと考えており、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/

4

4 に答える 4

84

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

setDataメソッド自体が redraw メソッドを呼び出します

于 2013-03-15T10:40:16.470 に答える
13

再描画を呼び出す前に、 setを呼び出してチャート オブジェクトに関数を追加する必要があります。

chart.xAxis[0].setCategories([2,4,5,6,7], false);

chart.addSeries({
    name: "acx",
    data: [4,5,6,7,8]
}, false);

chart.redraw();
于 2013-02-01T10:31:53.470 に答える
10
var newData = [1,2,3,4,5,6,7];
var chart = $('#chartjs').highcharts();
chart.series[0].setData(newData, true);

説明:
変数には、チャートで更新するnewData値が含まれています。変数はチャートのオブジェクトです。データを更新するためにハイチャートが提供するメソッドです。chartsetData

メソッド setData には 2 つのパラメーターが含まれています。最初のパラメーターには新しい値を配列として渡す必要があり、2 番目のパラメーターはブール値です。trueチャートがそれ自体を更新する場合、メソッドfalseを使用redraw()してチャートを更新する必要がある場合(つまりchart.redraw();

http://jsfiddle.net/NxEnH/8/

于 2016-06-25T06:47:59.310 に答える