{
let h = 360
let region = regions[0]
let list = region.lists[1]
let c = candidates.filter(c => c['Libellé de la région'] == region.name && c['Libellé Etendu Liste'] == list)
const svg = d3.create("svg")
.attr("viewBox", [0, 0, width, h]);
let x = d3.scaleLinear()
.domain([d3.min(c, c=>c['N° candidat']), d3.max(c, c=>c['N° candidat'])])
.range([20, width - 20])
let y = d3.scaleBand()
.domain([ ...new Set(c.map(c => c['Libellé section électorale']))])
.range([20, h - 20])
let r = d3.scaleLog()
.domain([d3.min(c, c => c['N° candidat']), d3.max(c, c => c['N° candidat'])])
.range([15,3])
svg.append('g')
.selectAll('circle')
.data(c)
.join('circle')
.attr('cx', d => x(d['N° candidat']))
.attr('cy', d => y(d['Libellé section électorale']))
.attr('r', d => r(d['N° candidat']))
.attr('fill', d => color(d['Nuance candidat']))
return svg.node()
}