如何向 dc.js 图表添加自定义数据注释?
How can I add custom data annotations to a dc.js chart?
我目前有一个相当基本的复合折线图,如下所示:
我想添加以下 "dynamic" 注释:
"dynamic" 我的意思是,每当用户更改日期过滤器或选择画笔时,这些总数和计算的比率都需要更新。
我卡在两个方面:
解决此问题的推荐方法是什么?到目前为止,我探索了两条路径:
- 使用 renderlet 将 SVG 元素绘制到图表中:我无法访问 crossfilter 对象来检索数据。
- 在图表外创建自定义 D3 渲染:当日期选择器更改或图表为 'brushed' 时,我无法更新统计数据。此外,这在某种程度上降低了在图表本身中添加注释的灵活性(据我所知)。
顺便说一句,这个比率可以直接在crossfilter中计算吗?如果有怎么办?
按照您的模拟方式,我建议您将它们设置为单独的图表。最好的选择可能是使用 dc.numberDisplay.
关于计算比率 - 是的,您可以在 Crossfilter 中计算它们,但不要那样做。在单个 Crossfilter 组(使用自定义缩减器 Reductio, or Universe)上维护比率的两个组成部分,并在报告时进行除法。在dc.js中,这意味着计算图表valueAccessor
中的比率。
我目前有一个相当基本的复合折线图,如下所示:
我想添加以下 "dynamic" 注释:
"dynamic" 我的意思是,每当用户更改日期过滤器或选择画笔时,这些总数和计算的比率都需要更新。
我卡在两个方面:
解决此问题的推荐方法是什么?到目前为止,我探索了两条路径:
- 使用 renderlet 将 SVG 元素绘制到图表中:我无法访问 crossfilter 对象来检索数据。
- 在图表外创建自定义 D3 渲染:当日期选择器更改或图表为 'brushed' 时,我无法更新统计数据。此外,这在某种程度上降低了在图表本身中添加注释的灵活性(据我所知)。
顺便说一句,这个比率可以直接在crossfilter中计算吗?如果有怎么办?
按照您的模拟方式,我建议您将它们设置为单独的图表。最好的选择可能是使用 dc.numberDisplay.
关于计算比率 - 是的,您可以在 Crossfilter 中计算它们,但不要那样做。在单个 Crossfilter 组(使用自定义缩减器 Reductio, or Universe)上维护比率的两个组成部分,并在报告时进行除法。在dc.js中,这意味着计算图表valueAccessor
中的比率。