Javascript D3饼图json结构问题?

Javascript D3饼图json结构问题?,javascript,json,d3.js,Javascript,Json,D3.js,我想从一个json提要创建一个简单的饼图,但是在下面的几个示例之后,我发现firebug没有给我任何错误,但是饼图没有显示出来。我不确定这是否与我的json结构有关?有一阵子我遇到了这样的错误: Object #<Object> has no method 'map' 如果您的变量filterdata是一个对象,您应该向数据方法传递一个数组,我们将不胜感激。如果使用.selectAll(“svg”).data([filterdata]),则需要将元素附加到enter: var ch

我想从一个json提要创建一个简单的饼图,但是在下面的几个示例之后,我发现firebug没有给我任何错误,但是饼图没有显示出来。我不确定这是否与我的json结构有关?有一阵子我遇到了这样的错误:

Object #<Object> has no method 'map'

如果您的变量
filterdata
是一个对象,您应该向
数据
方法传递一个数组,我们将不胜感激。如果使用
.selectAll(“svg”).data([filterdata])
,则需要将元素附加到
enter

var chart = d3.select("body").selectAll("svg")
    .data([filterdata])
    .enter()
    .append("svg")
    .attr("width", w)
    .attr("height", h)
    .attr("transform", "translate(" + r + "," + r + ")");  
D3希望
data
的参数是一个数组。
filterdata
对象没有
map
方法,因此会出现错误。也可以将单个对象绑定到选定对象,但需要先附加它:

var chart = d3.select("body").append("svg")
    .datum(filterdata)
    .attr("width", w)
    .attr("height", h)
    .attr("transform", "translate(" + r + "," + r + ")");

您好,

谢谢@Pablo Navarro,但如果我尝试以下操作,我会再次收到相同的错误?我的代码中是否有其他部分干扰了数组?您的代码中还有一些问题。首先,您可能希望执行
filterdata=data.rows
,而不是将每一行分配给变量
filterdata
。然后,
pie
布局是一个函数,您需要调用它并向其传递一个数组(
.data(pie(filterdata))
)。我建议您发表评论,以验证
filterdata
是否符合您的想法,然后逐步添加SVG和饼图。问候,谢谢你的耐心和帮助。您让我走上了正确的道路,并帮助我意识到我试图传递的是对象而不是数组。
var chart = d3.select("body").selectAll("svg")
    .data([filterdata])
    .enter()
    .append("svg")
    .attr("width", w)
    .attr("height", h)
    .attr("transform", "translate(" + r + "," + r + ")");  
var chart = d3.select("body").append("svg")
    .datum(filterdata)
    .attr("width", w)
    .attr("height", h)
    .attr("transform", "translate(" + r + "," + r + ")");