以下是plunker - http://plnkr.co/edit/pXitfqb8K2IbxOHXw0uL?p=preview
是否记录了正确的值,但没有构建饼图 相反,我可以在日志中看到以下内容
nvd pie - {"values":[{"parent":"Food","amount":116.1},{"parent":"Home","amount":670.14},{"parent":"Travel","amount":365.24},{"parent":"Taxes","amount":31.240000000000002},{"parent":"Entertainment","amount":13.24}]} script.js:166
Uncaught TypeError: Cannot call method 'map' of undefined nv.d3.js:9623
如何解决此问题?
答案 0 :(得分:4)
从nv.d3.js看一下第9623行,你会发现在数组的第一个元素上调用了map方法,你的数据就是一个对象。
您需要做的是将值封装在1个元素数组中:
var data = [{
key : "",
values : [{"parent":"Food","amount":116.1},{"parent":"Home","amount":670.14},{"parent":"Travel","amount":365.24},{"parent":"Taxes","amount":31.240000000000002},{"parent":"Entertainment","amount":13.24}]
}];
答案 1 :(得分:4)
我挣扎了一段时间,主要是因为我从nvd3.org网站上的实例开始。
事实证明,实际网站上的示例中的数据格式与核心nvd3下载捆绑的示例中的数据格式不同。
在下载的pie.html示例中,数据指定如下:
var testdata = [
{
key: "One",
y: 5
},
{
key: "Two",
y: 2
},
{
key: "Three",
y: 9
}
];
然后通过它传递数据包裹在一个未命名/键控数组中......
d3...datum([testdata])....
这种格式适用于我。
答案 2 :(得分:0)
经过几个小时的挣扎,我能够解决这个问题。
请查看http://plnkr.co/edit/qJnZzBS4ZOUtD2q9FV11?p=preview了解其运作方式