dc.js折线图分组后的访问值

dc.js Access value after grouping for line chart

本文关键字:访问 js 折线图 dc      更新时间:2023-09-26

我的代码如下:我要做的是取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_popol。如何做到这一点?

在我看来,添加一个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]));

未经测试,但至少希望这能让你走上正确的道路。