【问题标题】:Original Data Display on chart after filtering (DC.js)过滤后在图表上显示原始数据(DC.js)
【发布时间】:2020-12-08 00:45:56
【问题描述】:

一旦使用“fake group”过滤,我正尝试在我的 DC.js 图表 (similar to this) 上显示原始数据。

我按照this 帖子中的步骤操作,但运气不佳。我想知道是不是因为我使用的是reductio

另外,也许是因为我正在使用键/值访问器函数??:

.keyAccessor((d) => {
    return d.key;
})
.valueAccessor((d) => {
    return d.value.avg;
}),

这里是stackblitz minimal implementation,有兴趣听听任何见解!

【问题讨论】:

  • 使用除条形图之外的任何图表比较未过滤数据是否有意义?我从未见过它,我无法想象它会如何工作。条形图有一个很好的属性,过滤的条自动表示它们所覆盖的未过滤条的一部分。 也许是一张面积图,但我从未见过。散点图?不。
  • @Gordon 我想你可以把我绘制的图表想象成条形图,除了它们是散点而不是条形(审美选择)。需要明确的是,您是说出于某种原因这是不可能的,还是没有意义?
  • @Gordon, P.S.我将其中一个系列转换为条形图(最初都是),您可以看到 staticCopy 仍在被过滤,知道为什么吗?
  • 知道了。一般来说,散点图是不可解释的,因为您无法分辨哪个点是哪个点。但是每个 X 只有一个 Y,所以这是有道理的!

标签: d3.js dc.js crossfilter


【解决方案1】:

这实际上是一个简化的“问题”,因为它创建了一个更复杂的组对象

例如

key: foo
value: {
  avg: bar,
  sum: baz,
  etc.
}

所以链接帖子中的“深拷贝”

  function static_copy_group(group) {
      var all = group.all().map(kv => ({key: kv.key, value: kv.value}));
      return {
          all: function() {
              return all;
          }
      }
  }

实际上仍在引用。通过使用 clone 库来修复

【讨论】:

  • 不错。在这种情况下,更改为 {...kv.value} 就可以了,但克隆应该适用于所有情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 2015-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多