如何在箱形图中仅显示有限数量的记录 dc.js

How to show only limited number of records in box plot dc.js

我想显示箱线图的最近 10 个 bin。

如果对条形图或折线图应用过滤器,则箱形图应根据这些过滤器显示最近的 10 条记录。

我按日期(顺序)制作尺寸。但是我无法得到结果。

我不知道如何使用假组。我是 dc.js 的新手。

场景图片附后。如果有人需要更多详细信息来帮助我,请告诉我。

在图像中,我按时间尺度尝试了一些解决方案。

您可以使用两个假组来执行此操作,一个用于删除空箱线图,另一个用于获取结果数据的最后 N 个元素。

删除空箱线图:

  function remove_empty_array_bins(group) {
    return {
      all: function() {
        return group.all().filter(d => d.value.length);
      }
    };
  }

这只是过滤 bin,删除 .value 数组长度为 0 的任何地方。

取最后N个元素:

  function cap_group(group, N) {
    return {
      all: function() {
        var all = group.all();
        return all.slice(all.length - N);
      }
    };
  }

这基本上就是 cap mixin 所做的,除了没有为 "others" 创建一个 bin(这有点棘手)。

我们从原始组中取出数据,看它有多长,然后slice那个数组从all.length - N到最后。

将它们传递到图表时将这些假的链接在一起:

  chart
    .group(cap_group(remove_empty_array_bins(closeGroup), 5))

我使用 5 而不是 10,因为我要处理的数据集较小。

Demo fiddle.

此示例使用 "real" 时间尺度而不是顺序日期。有几种方法可以按顺序排列日期,但如果您的组仍然按从低到高的日期排序,这应该仍然有效。

如果没有,您必须编辑您的问题以包含您用于生成序号日期组的代码示例。