У вас есть несколько событий, которые запускаются в различных точках жизни графа:
https://dc -js.github.io / dc.js / docs / html / dc.baseMixin.html# on
То, что похоже на underlayCallback, это либо событие renderlet, либо событие перед переходом. из обратного вызова вы можете делать практически все, например, вращать метки топора, отслеживать новые события кликов, добавлять новые элементы SVG ...
Здесь есть пример рисования дополнительногострока:
.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);