.label函数上的dc.js文档是否不正确?

时间:2016-01-08 00:49:13

标签: dc.js

当我使用此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

1 个答案:

答案 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将打破界面,它有助于使其一致或更强大。

总是欢迎拉取请求,尤其是新的或更新的测试!