2017-08-11 9 views
0

ハイチャートを使用しようとしていました。これはグラフをレンダリングしますが、新しい点でチャートを更新している間は正しく動作していないようです。 私がしたsetIntervalでグラフ化するポイントを追加しようとした:highChart isarange chart with issue点を追加中に

以下
setInterval(function(){ 
    chartObj.series[0].addPoint([new Date().getTime(), Math.random()*10, Math.random()*10]); 
    chartObj.series[1].addPoint([new Date().getTime(), Math.random()*10, Math.random()*10]); 
}, 1000); 

はバイオリンのためのリンクです:

http://jsfiddle.net/saurabh0683/q808rjmt/1/

http://jsfiddle.net/saurabh0683/zcpd3Lq0/1/

は、コードに何か問題はありますか?

+0

私は、問題は、あなたが追加されているデータだと思います。シリーズ1のみがアレーンであるため、シリーズ0はアレイ内に2つのポイントしか持たないようにしてください。また、あなたの最低はあなたの最高の下にあることが保証されていません。 –

答えて

1

まず、pointsには、そのタイプが「線」であるため、最初のシリーズに1つの値を追加する必要があります。第2に、アラインメントとラインシリーズの追加点が元々「温度」と「範囲」シリーズのポイントと一致しないため、チャートが奇妙に見えます。さらに、最後のシリーズポイントと最初に追加されたポイントとの間には、大きな隙間があります。私はデモを変更して中央の値がラインシリーズの値であり、最も低い点と最も高い点がアライメント専用の であることを確認しました。

例:
http://jsfiddle.net/rpgqvy35/

+0

それは働いてくれてありがとう。しかし、あなたが割り当てた範囲と平均の初期値をコメントアウトしていることに気付きました。初期値から開始する必要があるので、私はコメントを外して更新値を適用しました。そして、これはまだ私を問題にしていました。データやそのフォーマットに問題があるかもしれませんが、最初にループを実行してからsetIntervalにループを設定するなどのアプローチを試してみましたが、何も機能しませんでした。最後に、もう1つのsetIntervalを使用してit.http://jsfiddle.net/saurabh0683/q808rjmt/13/を開始してからキャンセルする必要がありました。 – saurabh

+0

このフィーダーのhichart apiやデータに問題がありますhttp://jsfiddle.net/saurabh0683/q808rjmt/13/ – saurabh

+0

@saurabh前にも述べたように、最後のシリーズのポイントと最初に追加されました。初期値からの最後のポイントは31.07.2009を表し、最初に追加されたものは現在(22.08.2017)を示しているため、チャートがレンダリングする方法がレンダリングされるのはこのためです。これを修正するには、01.08.2009から始まる新しいポイントを追加します。例:http://jsfiddle.net/cLc35e7c/。 –