我试图在DC.js中创建一个条形图。在这里,我减少了一个字段的平均值,并希望在y轴上显示该字段。我不清楚如何做到这一点。有人可以帮我吗?
var dimByChannel = cf.dimension(function(d) { return d.channelUUID; });
var groupByChannel = dimByChannel.group().reduce(reduceAdd, reduceRemove, reduceInitial);
function reduceAdd(p, v) {
p.bytesTxd = p.bytesTxd + v.bytesTxd;
p.avg = (p.bytesTxd/total)*100;
p.count = p.count + 1;
return p;
}
function reduceRemove(p, v) {
p.bytesTxd = p.bytesTxd - v.bytesTxd;
p.avg = (p.bytesTxd/total)*100;
p.count = p.count - 1;
return p;
}
function reduceInitial() {
return {
bytesTxd: 0,
avg: 0,
count: 0
};
}
我使用total
计算了reduceSum()
。直到现在一切都很好。现在如何在y轴上显示缩小的avg
?
chanUtil
.dimension(dimByChannel)
.group(groupByChannel)
.x(d3.scale.ordinal().domain(data.map(function (d) { return d.channelUUID; })))
.xUnits(dc.units.ordinal)
//.y(d3.scale.linear().domain(data.map(function (d) { return d.avg; })))
.yAxisLabel("Utilization %");
答案 0 :(得分:1)
是的,.y()
非常具有欺骗性(或模糊地)命名:一个用于比例尺,它将图表坐标映射到物理坐标。
您想要的是.valueAccessor()
:
.valueAccessor(function(d) { return d.value.avg; })