【问题标题】:Using dc.js without crossfilter使用没有交叉过滤器的 dc.js
【发布时间】:2014-12-23 16:41:22
【问题描述】:

他们一直在讨论如何简单地将 dc.js 用作图形库(例如绘制饼图、条形图...)而不需要交叉过滤器,例如,如果您只是想在数据已经是一个(标签,值)。

我没有找到任何如何做到这一点的例子。这可能在 2.0 分支上吗?它适用于每个图表吗?

【问题讨论】:

  • 如果您只绘制一个图表,我建议您使用另一个库,例如 Vega 或 nvd3。 dc.js 的大部分价值在于图表之间的转换和过滤。虽然一年前通过.data() 进行了一些努力来支持直接数据,但这只是完成了一半;请参阅 github.com/dc-js/dc.js/issues/584 以获取通过在内部使用该函数来破坏目的的图表列表。
  • 目的是使用相同的框架,无论是简单的饼图还是复杂的东西,都可以从交叉过滤器的所有好东西中受益。谢谢,我会复制粘贴 #584 中的详细信息并关闭
  • 我想知道是否更好的方法不是保留交叉过滤器,而是提供合理的默认值(例如 group() 通常是 reduceCount (返回 +1)...我会尝试一下。
  • 是的,您还可以使用交叉过滤器并通过一些唯一键减少,例如行索引。我们应该在某个地方把它拼出来。

标签: dc.js


【解决方案1】:

所以“正常”的方式是定义data(),但是由于这个函数已经在一些图表内部定义了,它并不能很好地工作:

http://github.com/dc-js/dc.js/issues/584 详情:以下图表在内部使用 .data():

  • Stack Mixin(因此是 Line 和 Bar)- 过滤然后在数据上堆叠 d3.layout.stack创建“其他”bin
  • 数字图表 - 查看该组是否具有 value() 函数(例如,它是一个全组)。否则,取最高值。对结果运行 valueAccessor (!!!)
  • 箱线图 - 向数据添加映射函数。过滤掉长度为 0 的值(它们本身就是数组)。

【讨论】:

  • 谢谢。请在系统允许时接受您的回答。我认为.data 可以工作,但这是一些工作。现在我认为您可以使用fake groups,但您需要做一些工作。如果您有更好的想法,请向用户组提出问题或发帖。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 2015-05-27
  • 2017-06-05
相关资源
最近更新 更多