dc.js - pieChart忽略不需要的值

时间:2014-09-09 10:45:24

标签: dc.js crossfilter

我有一个使用以下尺寸显示的饼图 -

var types = facts.dimension(function (d) {
   if (d.types === 2)
      return "Type 2";
   else if (d.types === 3)
      return "Type 3";
   else
     return "Other";
 });

我不想返回,忽略所有其他类型,所以饼图只会显示Type 2和Type 3.虽然我确定它很简单但我似乎无法使用它。我可以在那个维度内做某事或者我之前需要过滤吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您是否尝试过创建新类型,然后在其上创建维度?

facts.forEach(function(d) {
  if (d.types == 2) {
     d._type = "Type 2";
  } else if (d.types == 3) {
     d._type = "Type 3";
  } else {
     d._type = "Other";
  }
});

var types = facts.dimension(dc.pluck('_type'))

答案 1 :(得分:1)

您需要(1)过滤您的数据,然后(2)将其从垃圾箱中删除。通过ensure_group_bins(myGroup)运行您的数据,您将获得您之后的图表

function remove_empty_bins(source_group) {
return {
    all:function () {
        return source_group.all().filter(function(d) {
            return d.key != "unwanted" ;
        });
    }
};}

function ensure_group_bins(source_group, bins) {
return {
    all:function () {
        var result = source_group.all().slice(0), // copy original results (we mustn't modify them)
            found = {};
        result.forEach(function(d) {
            found[d.key] = true;
        });
        bins.forEach(function(d) {
            if(!found[d])
                result.push({key: d, value: 0});
        });
        return result;
    }
};};

dc.js Github