d3.js - dc.js - 监听图表组渲染

标签 d3.js dc.js crossfilter

我正在尝试重构一些我编写的自定义 d3 代码,以通过引入 dc.js 来呈现一系列交叉过滤器驱动的图表。

我的主要问题是我有一些 dc.js 不支持的图表类型(例如 Sunburst Partition ),我试图弄清楚如何将它们与 dc.js 图表组一起呈现。

过滤单个 dc.js 图表将自动呈现/重绘属于相同的所有其他图表 chartGroup .是否有可能以某种方式 Hook 该全局重新渲染事件,以便我可以同时重新绘制非直流图表?

我知道每个图表上都有听众,例如chart.on("postRender", function(chart){...})但似乎没有办法重新渲染一组图表。有没有一个好的模式可以实现这一点?

最佳答案

执行此操作的“正确”方法是使用 dc.registerChart 在 dc 注册表中注册您的图表。

你只需要执行 .redraw().render()在某个对象(您的图表或包装器)上,并将该对象作为第一个参数传递。

将它与它应该响应的图表放在同一组(第二个参数)中。

render()从头开始创建 dom 元素,然后 redraw()当数据改变时更新它们。

根据图表的使用方式,您可能还需要实现 .filterAll().anchorName()

关于d3.js - dc.js - 监听图表组渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25336528/

相关文章:

d3.js - dc.js 系列图表上的反向 x 域

crossfilter - 如何获取交叉过滤器维度的当前过滤器?

javascript - crossfilter.js 和 dc.js : Is there a limitation to number of dimensions and facts to be used?

dc.js - 如何在我的 crossfilter 组中使用自定义 reduce 函数?

javascript - 在 dc.js 中放大文本标签

javascript - d3.js filter() 不显示预期结果

javascript - 在运行时更改折线图的域

javascript - D3.js可视化-如何添加Y轴网格线

javascript - 使用 ajax 调用获取 gzipped SVG 文件的内部内容

D3.js 用背景填充图形的一部分