2016-04-07 18 views
1

ハイチャートのドキュメントページでdynamic spline jsfiddle を研究しています。ここでは、Math.random()を使用してデータを更新し、シリーズに追加します。ドキュメントからハイチャートはcsvファイルからチャートを動的に更新します

、私もすべてを一度に(またはrapid highchartsから優れたコードを使用して:

function parseCSVData(csvFile) { 
var data = [] 
var lines = csvFile.split("\n") 
$.each(lines, function (lineNumber, line) { 
    var fields = line.split(","); 
    if (fields.length == 2){ 
     var timestamp = Date.parse(fields[0]) 
     var value = parseFloat(fields[1]); 
     data.push([timestamp, value]) 
    } 
}) 
return data} 

)の代表的なcsv filesをロードする方法を知っている

私が何をしたいのです:

  • csvファイルの1行を読み取る
  • グラフを更新する
  • ため
  • 休止ファイル

ひいてはリアルタイムアプリケーションを模倣するが終了するまで上記やり直します。

しかし、以前に読み取った行を追跡する方法がないため、単にevent : loadの下に置くことはできません。 リアルタイムでデータをプルする例では、apiやwebsocketのようなものを使用しています。これは、私にとってはあまりにも進んでいて、私の場合は使用できません。
は私のcsvファイルは次のようになります言ってやるがいい。(sample.csv

t observed 1 19 2 12 3 28 4 17 5 85 6 22 7 86 8 16 9 90 10 93 11 39 12 96 13 42 14 74 15 100 16 22 17 41 18 32

比較的簡単な方法で、上記の手順を実行する方法はありますか? my jsfiddle

+0

あなたはスプライン例のようにそれを行うことができますか?彼らはそこにあるsettimeoutを使ってデータを更新するためにmath.randomを使用せず、ランダムなデータを生成するためにmath.randomを使うのではなく、setTimeoutはそれを更新するものです あなたのチャートは今フィドルでどのように見えますか? – JordanHendrix

+0

彼らは 'setInterval'を使って新しいデータを生成し、それを毎秒シリーズに追加します。これまで読んだ行を追跡する必要があるので、私はここでそれを行うことはできません。 'event:load'の下にあるコードは、以前のアクションの参照を保持することができません。私は本当にうまく動作していませんが、これに最も近いのです。https://jsfiddle.net/f2ph7jap/ – Pep

+2

すべてのCSVデータを解析して配列に入れることができます。次に、配列はすべての配列が追加されるまで 'setInterval'で反復され、間隔をクリアします。配列と反復子の外側の関数を定義すると、すべての反復でアクセスできるようになります。 –

答えて

0

プロットする必要がある次の配列インデックスの変数を保持する方法はありますか?

setInterval(function() { 
    if(window.nextIndex===undefined){ 
     window.nextIndex=0; 
    }else{ 
     window.nextIndex++; 
    }       
    series.addPoint(data[window.nextIndex], true, true); 
}, 1000); 
1

あなたがsetIntervalの外で定義されたイテレータを使用して解析されたデータ配列を反復する場合は、その後、あなたは、各反復でポイントを読み込むことができます。イテレータが利用可能なデータの長さに達すると、clearIntervalを使用して間隔をクリアできます。

JSFiddleデモの目的は、HTMLからCSVデータを読み込みましょう。あなたのコードに基づいて

例:http://jsfiddle.net/qkxda04n/

+0

ありがとう、これは私が必要としたものです。少しは関係ありませんが、ズームレベルと "From" "To"をこれから削除することは可能ですか? – Pep

+1

@Pepはい、 'rangeSelector:{enabled:false} 'を設定するだけです。 - 例:http://jsfiddle.net/qkxda04n/1/ –

関連する問題