0

皆さん、こんにちは。

私は現在、いくつかのデータをグラフ化するために HighCharts を使用することを学んでいます。

ローカル ページでの設定方法を学んだ後は、データを動的に (または ajax を介して) ロードする時が来ました。

チャートは正常にロードされ、シリーズは次のように定義されています。

var series1=[];
var series2=[];
var series3=[];

次に、ajaxリクエストを起動するボタンがあり、これらの配列にデータが入力され、SQLデータベースから引き出され、フォーマットされ、Webページに送り返されます:D(これにはしばらく時間がかかりました)

さて、これらの配列がいっぱいになったので、HighCharts にこのデータを描画させようとしています。

chart.refresh(); を使用しようとしました。私のajaxの最後に、これはエラーを与えるようです:

Uncaught TypeError: Object #<Object> has no method 'refresh'

私は少し困惑しており、進歩するのに苦労しています-正しい方向へのナッジは非常に高く評価されます!

編集:

chart.series[0].setData(series1);

配列がいっぱいになった後に起動する必要があるものです。

4

1 に答える 1

3

コードの残りの部分が表示されていないのは、大げさな推測です。HighCharts オプションで既に「作成」されたこれら 3 つのシリーズを使用してチャートを設定しました。ページをロードし、HighCharts オプション (3 つのシリーズを含む - 空のシリーズを含む) を定義してから、ajax 呼び出しを起動して 3 つのシリーズのデータ​​を入力します。

ただし、実際には各系列の新しいデータをチャートにプッシュしているわけではありません。vars が HighCharts に送信された後、変数を新しい値に設定するだけです - refreshing(HighCharts 呼び出しが有効な場合でも) HighCharts は 3 つの変数値を再読み取りしないため、「何も」しません。

また、chart.refresh は有効な HighCharts 呼び出しではないようです。試してみることがchart.redrawできますが、データ系列要素をどのように定義しているかが原因で、これはあなたのケースでは役に立たないと思います (重要な部分 - コードに新しいデータがあることを HighCharts に伝えていないため、わかりません) . データを動的に割り当てるためのポインターについては、 APIも参照してください。

シリーズの値をどのように更新していますか? 新しいデータがあることをグラフにどのように伝えますか? var x=[]の 3 行はあまり役に立たないので、残りのコードを確認すると役に立ちます。

を使用して系列のデータを設定する基本的な方法を次に示しますsetData

$('#button').click(function() {
    chart.series[0].setData([129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 29.9, 71.5, 106.4] );
});
于 2013-01-29T13:58:33.357 に答える