2016-09-16 21 views
1

我想創建一個簡單的條形圖,使用下面的代碼存儲在postgresql數據庫中的數據。圖表的軸出現,但數據不顯示。 當我訪問http://127.0.0.1:3000/test.json的數據顯示格式如下:Postgresql數據到高圖

[{ 「值」:4.0},{ 「值」:1.0},{ 「值」:4.0},{ 「值」:2.0} ,{「value」:2.0},{「value」:3.0},{「value」:2.0}]

因此,我試圖將此格式更改爲[],[],[],然後與高圖表一起使用。但我似乎$ .getJSON和我的迴路(i = 0 ....不工作。

<div id="orders_chart" style="width:560px; height:300px"></div> 
<script type="text/javascript" charset="utf-8"> 
$(function() { 
var test = []; 
$.getJSON('http://127.0.0.1:3000/test.json', function(data) { 
    for (i = 1; i < data.length; i++){ 
    test.push([data[i].key, data[i].value]); 
    } 
    $('#orders_chart').highcharts({ 
    chart: { 
     type: "column" 
    }, 
    title: { 
     text: "Orders by Day" 
    }, 
    series: [{ 
     data: test 
    }] 
    }); 
}); 

如果任何人有任何想法如何解決它或其他方式使用highcharts與Postgres數據庫(從CSV上傳的文件存儲)將幫助我很多!

+0

你應該解決這個問題的服務器端並將正確的數據發送到客戶端。如果你的數據點格式是'{「value」:4.0}',那麼你爲什麼試圖訪問'data [i] .key'中的'key'? 'test.push(data [i] .value);'應該工作。 「測試」數組在Highcharts中的使用方式如何? –

回答

0

在Ruby中,你可以創建test作爲

def user_dataset(data) 
    data.map do |key, value| 
    { 
     key[:value] 
    } 
    end 
end 

將返回您在[4.0,1.0,4.0,2.0,2.0,3.0,2.0數據]

按例如對於highcharts example 您需要的格式

series: [{ 
     name: 'Year 1800', 
     data: [107, 31, 635, 203, 2] 
    }] 

數據的情況下,數據條形圖執行是測試,你可以把值地名

+0

我試過了,但它不工作。我將user_dataset方法添加到test_controller.rb並在highcharts代碼中定義了數據:user_dataset(data)。 – DSodre