为什么我的.data函数在pieChart中工作但在dc.js中的lineChart中不起作用?

时间:2015-06-19 09:40:45

标签: javascript undefined dc.js

我想绘制一个不在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/

1 个答案:

答案 0 :(得分:1)

很抱歉,但是您无法使用.data()条形图或折线图进行合理的努力,因为dc.js uses .data() internally并且在这种情况下您必须致电{{ 1}}你自己为了创造它期待的数据。

相反,我建议你创建一个"fake group"。您可以使用

内联执行此操作
d3.stack

而不是

.group({all: function() { ... }})

或者,使用您的示例代码:

.data(function() {...})

你小提琴的叉子:http://fiddle.jshell.net/gordonwoodhull/4Lf8n7pn/8/

相关问题