2014-05-02 33 views
1

下面是一个使用Queue.js在一个dc.js加载多个CSV的例子:https://github.com/dc-js/dc.js/blob/master/web/examples/composite.html饼图中DC.js与Queue.js不工作

这里是我的版本(JavaScript的):

var composite = dc.compositeChart("#test_composed"); 
var composite2 = dc.compositeChart("#test_composed2"); 

var q = queue() 
    .defer(d3.csv, "morley.csv") 
    .defer(d3.csv, "morley2.csv"); 

q.await(function(error, exp1, exp2) { 

var ndx = crossfilter(); 
ndx.add(exp1.map(function(d) { 
    return {x: d.Run}; 
})); 
ndx.add(exp2.map(function(d) { 
    return {x: d.Run}; 
})); 

var dim = ndx.dimension(dc.pluck('x')), 
    grp = dim.group().reduceCount(dc.pluck('x')); 

composite 
    .width(768) 
    .height(480) 
    .x(d3.scale.linear().domain([0,200])) 
    .compose([ 
     dc.barChart(composite) 
      .dimension(dim) 
      .group(grp) 
     ]) 
    .brushOn(false) 
    .render(); 

composite2 
    .width(768) 
    .height(480) 
    .x(d3.scale.linear().domain([0,200])) 
    .compose([ 
     dc.lineChart(composite2) 
      .dimension(dim) 
      .group(grp) 
     ]) 
    .brushOn(false) 
    .render();  
}); 

使用相同的数据,应该像附图一样好。

my version of composite charts of line and bar with original datasets

它工作得很好线型图和条形图,但不工作的饼图,rowChart ...

是否有工作的饼图任何similiar的例子吗?

谢谢!

+0

在我看来像一个直的dc.js问题,queue.js只是一种确保数据在初始化图表之前加载的方法。你可以发布你的非工作pieChart jsfiddle吗?如果您查看饼图示例或API参考,您将看到API有点不同 - 例如,没有'.x()',原因很明显。 – Gordon

+0

@戈登你说得对!要改成pieChart,其实很简单。让我们使用上面的composite2。在正常情况下,我们只需要 1.删除.x() 2.删除.brushOn() 3.添加.radius() 4.将lineChart更改为pieChart。 与Queue.js后,它只是不工作... :( http://jsfiddle.net/8K66Q/ –

回答

0

我知道这并不能真正解决您的问题,但我只是让你知道不同的解决方案。谷歌代码游戏展示了谷歌为开发者使用的一些酷代码。查看这些链接 条形图:https://code.google.com/apis/ajax/playground/#bar_chart

+0

谢谢,但它是没有用的:( –

0

感谢您发布jsfiddle。如果你完成你的小提琴,我们可以更好地帮助你排除故障。 ;-)

看起来你正试图用pieChart创建一个复合图表。这很不寻常 - 你为什么要这么做?通常情况下,复合是为了当你想叠加不同的图表,但你只有一个图表在你的小提琴中。

我不确定复合图表是否适用于非网格图表。