Javascript D3饼图json结构问题?
我想从一个json提要创建一个简单的饼图,但是在下面的几个示例之后,我发现firebug没有给我任何错误,但是饼图没有显示出来。我不确定这是否与我的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
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 + ")");