当我使用此dc.js doc
显示的代码时https://github.com/dc-js/dc.js/blob/master/web/docs/api-1.7.0.md#labellabelfunction
我得到了不同的答案。文档错了吗? 例如,当我使用技巧将数据结构转储到控制台时:
.label(function(d){
console.log(JSON.stringify(d));
return d.key;
)};
我明白了:
{"key":"M16SDH","value":690}
{"key":"M16SP","value":886}
{"key":"M16SPS","value":704}
没有“d.data”对象,因此尝试计算百分比 这种方式不起作用:
// Simple pie chart to filter on type.
var byTypeChart = dc.pieChart("#byTypeDiv");
var byTypeDim = ndx.dimension(function (d) { return (d.celltype == null?'na':d.celltype); });
var byTypeGroup = byTypeDim.group();
byTypeChart
.width(200).height(200)
.dimension(byTypeDim)
.group(byTypeGroup)
.label(function(d){
return d.data.key + "(" + Math.floor(d.data.value / all.value() * 100) + "%)";
})
;
该文件说:
// label function has access to the standard d3 data binding and can get quite complicated
但我明白了:
TypeError: d.data is undefined
答案 0 :(得分:0)
是强>
该功能与文档和许多其他标签功能不一致。
问题在于:https://github.com/dc-js/dc.js/issues/703
按照该问题上的链接查找其他参数中的类似差异。
此处的解决方法显然只是直接引用.key
和.value
。
dc.js有机增长,而不是建立一致的计划或愿景。它原本只是一个增长并越来越受欢迎的演示,并且有dozens and dozens of contributors。
我不是原作者,而是维护者。我一直在关注更多关注2.0,而不是清理界面。 2.0,仍处于测试阶段,将保持稳定的界面,并通过2.0.1继续保持不变。 2.1和2.2将打破界面,它有助于使其一致或更强大。
总是欢迎拉取请求,尤其是新的或更新的测试!