我正在使用仪表板来帮助公司分析多个方面的成本。
我有 主要在<{3}}
进行工作有些事我似乎无法工作。
显示承包商的独特采购订单数量:
我已经能够在数据表中准确地显示这一点,你可以在小提琴中看到,但由于某种原因,我在rowChart上尝试的任何内容都不会显示总PO的行,而不是唯一的PO(这是扁平化的数据,每个行项目都是数据表中的一行,因此一个PO可能有很多行。 FOR EXAMPLE ,Bill只提交了一个PO,但它有两行。图表显示(2)比尔)。
contractorChart
.dimension(contractors)
.group(contractorGroup)
contractorChart
.dimension(uniqueDim)
.group(contractorGroup)
显示PO的总额
在主要工作的数据表上,我希望总列显示该PO的所有行的汇总总数,而不仅仅是第一个匹配。在我的uniqueDim
函数中,它只能通过聚合唯一的PO编号而不是整个PO对象来工作。我不确定如何汇总总数。
答案 0 :(得分:2)
在rowCharts中,显示的键和值仅由组确定。维度仅用于过滤,因此切换维度不应导致显示值的任何更改。您需要让您的组跟踪唯一的PO而不是维度。这有点难以正确有效地执行,但我建议使用Reductio exception aggregation,在这种情况下,只需在图表上定义Reductio reducer和值访问器:
reductio()
.exception(function(d) { return d.po; })
.exceptionCount(true)(contractorGroup)
contractorChart
.width(800)
.height(200)
.margins({ top: 20, left: 10, right: 10, bottom: 20 })
.dimension(contractors)
.group(contractorGroup)
.ordinalColors(['#3182bd', '#6baed6', '#9ecae1', '#c6dbef', '#dadaeb'])
.valueAccessor(function(d) { return d.value.exceptionCount; })
.label(function (d) {
return d.key;
})
.title(function (d) {
return d.value;
})
.elasticX(true)
.xAxis().ticks(4);
就数据表而言,您可以根据dc.js常见问题解答中的建议创建“假维度”,但实际上您需要一个具有聚合值的虚假维度。因此,将其建立在一个群体上:
var uniqueDim = {
bottom: function (num) {
var pos = poDimension.top(Infinity);
// Uses top because the version of Crossfilter being used
// doesn't support group.bottom.
return poGroup.top(num)
.filter(function(d) { return d.value > 0; })
.map(function(d) {
var currPo = pos.filter(function(g) { return g.po === d.key; })[0];
return {
po: d.key,
total: d.value,
contractor: currPo.contractor,
complexity: currPo.complexity
};
});
}
};
两者的工作示例:https://jsfiddle.net/33228p1d/2/
答案 1 :(得分:-2)
请尝试以下代码:
FBSDKLoginManager().logInWithReadPermissions(["email"], fromViewController: self) { (facebookResult: FBSDKLoginManagerLoginResult!, facebookError: NSError!) in
if let token = facebookResult.token.tokenString {
print(token)
}
}
次要添加,例如:
contractorChart
.width(800)
.height(200)
.margins({ top: 20, left: 10, right: 10, bottom: 20 })
.dimension(contractors)
.group(contractorGroup)
.ordinalColors(['#3182bd', '#6baed6', '#9ecae1', '#c6dbef', '#dadaeb'])
.label(function (d) {
return d.key;
})
.title(function (d) {
return d.value;
})
.elasticX(true)
.xAxis().ticks(4);