nvd3.js不会从jquery获取数据

nvd3.js不会从jquery获取数据,jquery,d3.js,nvd3.js,Jquery,D3.js,Nvd3.js,使用nvd3.js库使用jQuerys$.getJSON函数或d3.json函数从Web服务获取数据,生成一个StackedAreChart,我确实遇到了一些问题。 我正在从Web服务获取数据,但无法将数据放入图表中。 我尝试过使用静态数据,这是可行的,但是truble在使用$.getJSON或d3.json时启动 我做错了什么?你有更好的方法吗? 有没有更好的框架来制作图形(显示数据趋势)? 在这方面找不到任何好的资源,因此感谢您的帮助!:) var图; 风险值数据=[{ “密钥”:“HTT

使用nvd3.js库使用jQuerys
$.getJSON
函数或
d3.json
函数从Web服务获取数据,生成一个
StackedAreChart
,我确实遇到了一些问题。 我正在从Web服务获取数据,但无法将数据放入图表中。 我尝试过使用静态数据,这是可行的,但是truble在使用
$.getJSON
d3.json
时启动

我做错了什么?你有更好的方法吗? 有没有更好的框架来制作图形(显示数据趋势)? 在这方面找不到任何好的资源,因此感谢您的帮助!:)


var图;
风险值数据=[{
“密钥”:“HTTP 200”,
“值”:getData()
}];
setupGraph();
函数setupGraph(){
nv.addGraph(函数(){
chart=nv.models.stackedAreaChart()
.x(函数(d){返回d[0]})
.y(函数(d){返回d[1]/100})
.color(d3.scale.category10().range())
.clipEdge(假);
chart.xAxis
.d格式(函数(d){
返回d3.time.format(“%H:%M”)(新日期(d))
});
图1.yAxis
.tickFormat(d3.format(',1f'));
d3.选择(“#图表1 svg”)
.基准(数据)
.transition().持续时间(500)
.电话(图表);
nv.utils.windowResize(图表更新);
收益表;
});
}
函数getData(){
var-arr=[];
d3.json('http://localhost:8080/api,函数(inndata){
用于(数据中的var i){
var dataarr=新数组();
dataarr[0]=新日期(inndata[i].日期);
dataarr[1]=inndata[i]。计数;
arr.push(dataarr);
//arr.push({x:newdate(inndata[i].Date),y:inndata[i].count});
}
返回arr;
}
json字符串如下所示:
[{“日期”:“2013-01-07 09:01”,“计数”:2},{“日期”:“2013-01-07 05:02”,“计数”:2},}]

Javascript是异步的-因此您必须在回调中向d3.json方法提供setupGraph()

var arr = [];
d3.json('http://localhost:8080/api', function(inndata){
    for(var i in inndata){
        var dataarr = new Array();
        dataarr[0] = new Date(inndata[i].date);
        dataarr[1] = inndata[i].count;
        arr.push(dataarr);
        //arr.push({x: new Date(inndata[i].date), y: inndata[i].count});
    }
    var data = [{
       "key": "HTTP 200",
       "values": arr
    }];
    setupGraph(data) // Pass through data to setupGraph
}
var arr = [];
d3.json('http://localhost:8080/api', function(inndata){
    for(var i in inndata){
        var dataarr = new Array();
        dataarr[0] = new Date(inndata[i].date);
        dataarr[1] = inndata[i].count;
        arr.push(dataarr);
        //arr.push({x: new Date(inndata[i].date), y: inndata[i].count});
    }
    var data = [{
       "key": "HTTP 200",
       "values": arr
    }];
    setupGraph(data) // Pass through data to setupGraph
}