dc-js中有underlayCallback函数吗?

Is there an underlayCallback function in dc-js?

我发现 underlayCallback 选项在 dygraphs 库中非常有用。它允许用户绘制不属于库初衷的东西 "easily"。例如,我用它在时间序列图表上添加图形注释。

dc.js 框架中是否有等效的东西?理想情况下,它会在刷新时公开用于绘制图表的(可能已过滤的)数据。

您有几个事件在图表生命周期的不同时间点触发:

https://dc-js.github.io/dc.js/docs/html/dc.baseMixin.html#on

与underlayCallback 相似的是renderlet 或pretransition 事件。从回调中,您几乎可以做任何事情,比如旋转轴标签、跟踪新的点击事件、添加新的 svg 元素...

有一个example here多画一条线:

.on('renderlet', function(chart) {
    var left_y = 10, right_y = 70; // use real statistics here!
    var extra_data = [{x: chart.x().range()[0], y: chart.y()(left_y)}, {x: chart.x().range()[1], y: chart.y()(right_y)}];
    var line = d3.line()
        .x(function(d) { return d.x; })
        .y(function(d) { return d.y; })
        .curve(d3.curveLinear);
    var chartBody = chart.select('g.chart-body');
    var path = chartBody.selectAll('path.extra').data([extra_data]);
    path = path
        .enter()
            .append('path')
            .attr('class', 'extra')
            .attr('stroke', 'red')
            .attr('id', 'extra-line')
        .merge(path);
    path.attr('d', line);