2013-03-12 63 views
3

我最近发现了dc.js,并试图使用d3.js网站上提供的条形图示例实现简单的条形图:http://bl.ocks.org/mbostock/3885304dc.js带有序号x轴刻度的条形图无法正确呈现

但是,作为dc.js实现的一部分,需要交叉过滤器维和组。

因此,使用以“信”和“频率”的简单TSV文件,我已经改变了代码有点如下所示:

d3.tsv('testdata.tsv', function(error, data) { 
    var cf = crossfilter(data); 

    var dimension = cf.dimension(function(d){ 
    return d.letter; 
    } 

    var group = dimension.group().reduce(
    function(p,v){ 
     p.frequency += v.frequency 
    }, 
    function(p,v){ 
     p.frequency -= v.frequency 
    }, 
    function(){ 
     return { frequency: 0 }; 
    }); 

我有点困惑,我应该是什么将valueAccessor设置为(在我的条形图上),因为当我将valueAccessor设置为返回“frequency”,并且将xAxis比例设置为数据集中所有“字母”的域的序数时,我会得到一个呈现的条形图几乎所有的x轴值(“A - Y”)都位于Z轴点,而一个x轴值(即“Z”)位于x轴线的末端。

我试过设置范围,但似乎没有办法。关于我误解的任何想法将不胜感激!

回答

7

原来,我必须将.xUnits属性设置为dc.units.ordinal()才能正确地将x轴间隔开来!