【问题标题】:dc.js Access value after grouping for line chartdc.js 折线图分组后访问值
【发布时间】:2014-06-11 17:30:19
【问题描述】:

我的代码是这样的。我想做的是我想要平均 swn_pospol 并将其用作 Y 轴。我在 dateDimGroup 中得到的是键和值。现在如何获取 avg_pospol 并将其用作 Y 轴

var dateDim = ndx.dimension(function(d) {return d.fields.date;});

var dateDimGroup = dateDim.group().reduce(
    //add
    function(p,v){
        ++p.count;
        p.sum_pospol += v.fields.swn_pospol;
        p.avg_pospol = p.sum_pospol / p.count;
        return p;
    },
    //remove
    function(p,v){
         --p.count;
        p.sum_pospol -= v.fields.swn_pospol;
        p.avg_pospol = p.sum_pospol / p.count;
        return p;
    },
    //init
    function(p,v){
        return {count:0, sum_pospol: 0,  avg_pospol: 0};
    }
);

var lineChart  = dc.lineChart("#chart-line"); 
lineChart 
.width(1000).height(200)
.dimension(dateDim)
.group(cityDimensionGroup,"Positive")
.x(d3.time.scale().domain([minDate,maxDate])); 

dc.renderAll(); 

我想要的是折线图的 X 轴上的日期和 Y 轴上的 avg_pospol。如何实现?

【问题讨论】:

    标签: javascript d3.js dc.js crossfilter


    【解决方案1】:

    在我看来,添加 valueAccessor 函数应该可以满足您的需求。

    lineChart 
    .width(1000).height(200)
    .dimension(dateDim)
    .group(cityDimensionGroup,"Positive")
    .valueAccessor(function(p) { return p.value.avg_pospol; })
    .x(d3.time.scale().domain([minDate,maxDate]));
    

    未经测试,但至少有希望让您走上正确的道路。

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2022-07-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多