Chris Wolcott
Chris Wolcott

Reputation: 302

dc.js Can a Pie Legend be recentered after filtering

I would like to be able to recenter a Pie charts legend after it has been filtered. Slices/Legends will removed when filtering because we remove empty bins. I added a pretransition listener to chart2, but that seems to be to late because the legend y value is the previous value and not current.

.on('pretransition', chart => buildLegend (chart))

If Male is selected on the Gender Pie chart I want the 4 legend items on the Job Pie chart to be re-centered. Any suggestions?

You can see a jsFiddle example.

Upvotes: 1

Views: 68

Answers (1)

Chris Wolcott
Chris Wolcott

Reputation: 302

A little more digging around showed me how to reference and update SVG elements.

function recenterLegend(chart) {
    chart.selectAll('g.dc-legend')
        .attr('transform', function(d) {
            let legendY = (300 - (chart.group().all().length * 16)) / 2;
            let translate = 'translate(220,' + legendY + ')';
            return translate ;
         });
    }

Here is the updated jsfiddle.

Upvotes: 1

Related Questions