2016-09-16 31 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