2016-04-21 9 views
0

こんにちは私はハイチャートを使用していますが、データは正常に入力されていますが、日付はx軸には通らず、データには正しくフォーマットされた日付のパラメータがあり、 x軸とポップアップ上でそれを使用したいD、しかし私はそれが適切HighChartが正しくデータをプロットしていません

https://imgur.com/32TyzvH

function buildAndUpdateTempChart() { 
    $.getJSON('server/getReadings.php', function (data) { 
    $('#chartContainer').highcharts('StockChart', { 
     chart:{ 
     events: { 
      load: function(){ 
         // set up the updating of the chart each second 
         //debugger; 
         // var series = this.series[0]; 
         // //console.log('data is: ' + data); 
         // for(var i = 0; i < data.length - 1; i++){ 
         //  this.series[0].addPoint(data[i].temp, data[i].timestamp, true, true); 
         //  this.series[1].addPoint(data[i].aTemp, data[i].timestamp, true, true); 
         // } 


         // setInterval(function() { 
         // //get tick 
         //  var x = (new Date()).getTime(), // current time 
         //  y = Math.round(Math.random() * 100); 
         //  series.addPoint([x, y], true, true); 

         // }, 1000); 
        } 
        } 
       }, 

       title: { 
        text: 'Temperature Sensor Readings' 
       }, 
       yAxis: { 
        title: { 
        text: 'Degrees Celcius' 
        }, 
        plotLines: [{ 
        value: -10, 
        color: 'green', 
        dashStyle: 'shortdash', 
        width: 2, 
        label: { 
         text: 'Minimum tolerated.' 
        } 
        }, { 
        value: 20, 
        color: 'red', 
        dashStyle: 'shortdash', 
        width: 2, 
        label: { 
         text: 'Maximum tolerated.' 
        } 
        }]}, 
        plotOptions: { 
        series: { 
         compare: 'percent' 
        } 
        }, 

        series: [{ 
        name: 'Temp', 
        data: (function() { 
         var temp = []; 
         for (var i = 0; i < data.length; i++) { 
         temp.push([ 
          data[i].timestamp, 
          parseFloat(data[i].temp) 
          ]); 
         } 
         return temp; 
        }()), 
        tooltip: { 
         valueDecimals: 2 
        }}, 
        { 
         name: 'Ambient Temp', 
         data: (function() { 
         var aTemp = []; 
         for (var i = 0; i < data.length; i++) { 
          aTemp.push([ 
          data[i].timestamp, 
          parseFloat(data[i].aTemp) 
          ]); 
         } 
         return aTemp; 
         }()), 
         tooltip: { 
         valueDecimals: 2 
         }, 
        }] 
        }); 
    }) 
} 
$(document).ready(function(){ 
    buildAndUpdateTempChart(); //this is async so there rest of the app can continue to work 
    }); 
+0

を指定する必要があり、あなたを助けることができます。はいの場合は、すべてのx値を1000倍してください。 –

答えて

2

私の推測では、あなたが

xAxis: { 
      type: 'datetime' 
     }, 
が必要です注文するためにUTCの日時を使用する必要があります理解してあなたのコードに

お役に立てれば。

0

これはあなたがおそらくあなたのタイムスタンプがUNIX形式の代わりにミリ秒の(秒)(JavaScriptの)であるX軸datetime

function buildAndUpdateTempChart() { 
    $.getJSON('server/getReadings.php', function (data) { 
    $('#chartContainer').highcharts('StockChart', { 
     chart:{ 
     events: { 
      load: function(){ 
         // set up the updating of the chart each second 
         //debugger; 
         // var series = this.series[0]; 
         // //console.log('data is: ' + data); 
         // for(var i = 0; i < data.length - 1; i++){ 
         //  this.series[0].addPoint(data[i].temp, data[i].timestamp, true, true); 
         //  this.series[1].addPoint(data[i].aTemp, data[i].timestamp, true, true); 
         // } 


         // setInterval(function() { 
         // //get tick 
         //  var x = (new Date()).getTime(), // current time 
         //  y = Math.round(Math.random() * 100); 
         //  series.addPoint([x, y], true, true); 

         // }, 1000); 
        } 
        } 
       }, 

       title: { 
        text: 'Temperature Sensor Readings' 
       }, 
       xAxis: { 
        type: 'datetime' 
       }, 
       yAxis: { 
        title: { 
        text: 'Degrees Celcius' 
        }, 
        plotLines: [{ 
        value: -10, 
        color: 'green', 
        dashStyle: 'shortdash', 
        width: 2, 
        label: { 
         text: 'Minimum tolerated.' 
        } 
        }, { 
        value: 20, 
        color: 'red', 
        dashStyle: 'shortdash', 
        width: 2, 
        label: { 
         text: 'Maximum tolerated.' 
        } 
        }]}, 
        plotOptions: { 
        series: { 
         compare: 'percent' 
        } 
        }, 

        series: [{ 
        name: 'Temp', 
        data: (function() { 
         var temp = []; 
         for (var i = 0; i < data.length; i++) { 
         temp.push([ 
          data[i].timestamp, 
          parseFloat(data[i].temp) 
          ]); 
         } 
         return temp; 
        }()), 
        tooltip: { 
         valueDecimals: 2 
        }}, 
        { 
         name: 'Ambient Temp', 
         data: (function() { 
         var aTemp = []; 
         for (var i = 0; i < data.length; i++) { 
          aTemp.push([ 
          data[i].timestamp, 
          parseFloat(data[i].aTemp) 
          ]); 
         } 
         return aTemp; 
         }()), 
         tooltip: { 
         valueDecimals: 2 
         }, 
        }] 
        }); 
    }) 
} 
$(document).ready(function(){ 
    buildAndUpdateTempChart(); //this is async so there rest of the app can continue to work 
    }); 
関連する問題