我想绘制一个不在crossfilter中的维度的数据,因此我被迫使用.data。
对于一个pieChart,一切都很好,但是当我切换到lineChar时,我得到错误p is undefined
(Firefox)或Cannot read property y of undefined
(Chrome)。我试着遵循代码,但在其中有点迷失。你能告诉我它出了什么问题吗?
<div id="test"></div>
<script>
dc.barChart("#test")
.width(100).height(100)
.dimension({})
.group({})
.x(d3.scale.linear().domain([0,5]))
.data(function(){
return [
{key : 0, value : 4},
{key : 2, value : 14},
{key : 3, value : 20},
];
});
dc.renderAll();
</script>
如果您执行pieChart
,并且注释掉.x
。
这是一个jsfiddle,请注意脚本是从rawgit.com加载的:http://fiddle.jshell.net/fyy5m26r/1/
答案 0 :(得分:1)
很抱歉,但是您无法使用.data()
条形图或折线图进行合理的努力,因为dc.js uses .data() internally并且在这种情况下您必须致电{{ 1}}你自己为了创造它期待的数据。
相反,我建议你创建一个"fake group"。您可以使用
内联执行此操作d3.stack
而不是
.group({all: function() { ... }})
或者,使用您的示例代码:
.data(function() {...})