2016-07-14 27 views
0

このようなものを作成しようとしていますresizable HighChart。 違いは、私はブロブから自分のデータをロードしていることです。 これは私が受信グラフである: enter image description hereHighChartにデータが表示されない

これはにconsole.log(株)から、受信したデータの一部である;:

[{日:「2016年7月13日8 :35:00 AM」、値:60}、{日付: '2016年7月13日8時36分00秒AM ' 値:45}、...]

これは私のコードです。 https://jsfiddle.net/end5xc7m/

series: [{ 
    turboThreshold: 20000, 
    type: 'area', 
    name: 'Values to date', 
    data: data} 

これは私がどこから問題が発生しているのか、visitorData関数内で信じています。

データをグラフに投影していません。

+0

実際の問題を示すフィドルを設定できますか?現在のフィドルは何もロードしていません。 – jlbriggs

+2

あなたの質問に投稿したデータが、実際にプロットしようとしているデータであれば、そのまま動作しません。データをどのようにフォーマットするかを見てください:http://www.highcharts.com/docs/chart-concepts/series |また、日付はミリ秒(Date.UTCで返される)の整数エポックタイムスタンプとして送信する必要があります。文字列フォーマットではありません – jlbriggs

+0

あなたとmikeが問題になっているためにロードされません。それは完璧に働いた。 –

答えて

2

jlbriggsと記載されていますが、これはフォーマットの問題が原因です。カテゴリを使用して軸をプロットしていない限り、データが文字列として入力されるとハイチャートの視覚化は描画されません。

私はいくつかの修正とあなたのフィドルを更新しました:ここに私が変わっ何https://jsfiddle.net/brightmatrix/end5xc7m/2/

function processData(allText) { 
    var allTextLines = allText.split(/\r?\n/); 
    var lines = []; 
    for (var i = 0; i < allTextLines.length - 1; i++) { 
     var currentLine = allTextLines[i].split(','); 
     var thisLineValue = [Date.parse(currentLine[0]),parseInt(currentLine[1])]; 
     lines.push(thisLineValue); 
    } 
    return lines; 
} 

:あなたのチャートに沿って渡したい何

  • [x,y]のような配列のセットです。これらの変数は日付または数値のいずれかです。中括弧と+連結演算子を使用して値を構築すると、これらを文字列に変換します。代わりに、thisLineValueという一時配列を作成し、配列linesにプッシュしました。
  • 次に、その一時的な配列内で、Date.parse()を使用して日付値をタイムスタンプに変換しました。これは、datetime軸のHighchartsで、x軸を設定しているとうれしいことです。
  • あなたのy軸の値は、これらの値が文字列に変換されないようにするためにparseInt()を使用しました。
  • 最後に、lines配列をグラフに戻すと、toString()関数が削除されました。この場合も、チャートが期待する形式(日付と数値)で値が保持されます。

私はこれがあなたに役立つことを願っています!

+0

あなたの説明は素晴らしかった!とても役に立ちました。 –

関連する問題