3

这是 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

我该如何解决这个问题?

4

3 回答 3

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}] 
}];
于 2013-06-17T22:56:38.063 回答
4

我为此苦苦挣扎了一段时间,主要是因为我从 nvd3.org 网站上的实时示例开始。

事实证明,现场示例中的数据格式与核心 nvd3 下载捆绑的示例中的数据格式不同。

在下载的 pie.html 示例中,数据指定如下:

var testdata = [
{ 
  key: "One",
  y: 5
},
{ 
  key: "Two",
  y: 2
},
{ 
  key: "Three",
  y: 9
}
];

然后当通过它传递数据时,它被包装在一个未命名/键控的数组中......

d3...datum([testdata])....

这种格式对我来说很好。

于 2013-06-25T08:05:35.207 回答
0

经过几个小时的努力后,我能够解决这个问题。

请查看http://plnkr.co/edit/qJnZzBS4ZOUTD2q9FV11?p=preview了解它是如何工作的

于 2013-06-18T13:19:59.467 回答