2015-04-26 52 views
0

我有一個比特幣礦工它可以在JSON fromat輸出數據如下:生成圖表

{ 
    "Data1": { 
     "timestamp_raw": 1442856476, 
     "timestamp": { 
      "Year": 2015, 
      "Month": 9, 
      "Day": 21, 
      "Hour": 20, 
      "Minutes": 27, 
      "Seconds": 56 
     }, 
     "CG_Uptime": 15572, 
     "MHS_Avg": 2695618.06, 
     "DegC_In": "29", 
     "DegC_TopOut": "54", 
     "DegC_BotOut": "59", 
     "Unit_Uptime": 118393, 
     "FreeMem": "440", 
     "PSUVolt_Top": "217", 
     "PSUVolt_Bot": "217", 
     "FAN": "40", 
     "Total_Watts": 1264, 
     "Total_KWh": 0 
    }, 
    "Data2": { 
     "timestamp_raw": 1442856495, 
     "timestamp": { 
      "Year": 2015, 
      "Month": 9, 
      "Day": 21, 
      "Hour": 20, 
      "Minutes": 28, 
      "Seconds": 15 
     }, 
     "CG_Uptime": 15592, 
     "MHS_Avg": 2695948.02, 
     "DegC_In": "29", 
     "DegC_TopOut": "54", 
     "DegC_BotOut": "59", 
     "Unit_Uptime": 118412, 
     "FreeMem": "440", 
     "PSUVolt_Top": "217", 
     "PSUVolt_Bot": "217", 
     "FAN": "40", 
     "Total_Watts": 1248, 
     "Total_KWh": 30.006586944 
    }, 
    "Data3": { 
     "timestamp_raw": 1442856535, 
     "timestamp": { 
      "Year": 2015, 
      "Month": 9, 
      "Day": 21, 
      "Hour": 20, 
      "Minutes": 28, 
      "Seconds": 55 
     }, 
     "CG_Uptime": 15631, 
     "MHS_Avg": 2698686.25, 
     "DegC_In": "29", 
     "DegC_TopOut": "54", 
     "DegC_BotOut": "59", 
     "Unit_Uptime": 118451, 
     "FreeMem": "440", 
     "PSUVolt_Top": "217", 
     "PSUVolt_Bot": "217", 
     "FAN": "40", 
     "Total_Watts": 1232, 
     "Total_KWh": 0.013688752 
    }, ...... 

我想要做的就是讓在PHP網頁,將讀取該JSON文件和在圖表上顯示值,x軸將是時間(從json中的時間戳部分開始),y軸將是每個圖表的值。

我在這裏看到類似的東西 http://powerprice.info/SPT/graphic.php 它使用highcharts。 我該如何做到這一點?

+0

什麼是您的具體問題? highcharts API文檔包含有關如何更新圖表的信息。你不瞭解該過程的哪一部分? – charlietfl

+0

那麼我在看這個http://www.highcharts.com/demo/dynamic-update(我不確定這是否適合我的情況)。我是否需要以某種方式輪詢JSON數據(比如過去24小時的數據)並將其存儲在我的服務器上,以便此高級代碼可以解析它? – Panos

+0

'看這個'在問題的上下文中不是很有說服力 – charlietfl

回答

0

我認爲你只是尋求一般性建議。

的實時數據:

這裏是我的:如果服務器,它爲您提供了數據支持比特幣歷史數據,如數據範圍(對等),那麼,簡單地使用AJAX調用的具體要求將HTML文件發送到您的服務器。然後調用一些GET/POST到PHP中的提供者服務器來獲取請求的數據。然後在AJAX響應中爲圖表提供數據。只要確保你有正確的格式,需要Highcharts。

你不會在Highcharts網站上找到很多例子,因爲Highcharts在後臺有什麼不重要的。然而,this tutorial解釋了一點點。在步驟#1: Set up the server而不是隨機數據,從您的數據提供商得到適當的數據。

數據進行預處理:

其他建議,根據你的問題更新:我不能告訴你如何需要存儲的數據,上週,但我想簡單的數據庫就足夠了。正如你所說,使用一些cron任務,從服務中獲取數據,然後將其存儲在數據庫中。

問題是您的JSON的哪個屬性值在圖表上顯示。在下面的例子中,我假設MHS_Avg被用作y值。雖然我沒有看到任何東西是x值(如日期或時間戳)。

比方說,你已經/var/www/json.php圖表做負載數據:

$(function() { 
    $.getJSON("/var/www/json.php", function (data) { 
     var value, 
     series = [{ 
      name: "MHS_Avg", 
      data: [] 
     }]; // create series array with all series 

     // now parse data: 
     $.each(data, function (i, obj) { 
      value = parseFloat(obj["MHS_Avg"]); 
      if (!isNaN(value)) { 
       series[0].data.push([i, value]); 
       // or: 
       // series[0].data.push(value); 
       // or: 
       // series[0].data.push({ x: i, y: value }); 
      }; 
     }); 

     // create chart 
     $('#temps_hist').highcharts({ 
      series: series 
     }); 
    }); 
}); 
+0

更新了我的原始問題。 – Panos

+0

並更新了答案。注意:我不是PHP的人,所以從PHP數據庫獲取數據不是我的一部分。當然,在SO上有數百個類似的問題(關於PHP + MySQL等)。 –

+0

感謝您的回覆! X軸將是時間,所以我需要爲其時間戳創建一個帶有額外字段的新JSON。我會努力工作,並會回來的結果。 – Panos