viewof d3view = {
const WIDTH = width
const HEIGHT = width / 3
const container = DOM.svg(WIDTH, HEIGHT)
const svg = d3.select(container)
const pieData = d3.pie().value(d => d.num)(DATA)
const arcCreator = d3.arc()
.innerRadius(0)
.outerRadius(HEIGHT / 2)
const color = ({ data }) => {
switch (data.fruit) {
case 'Banane': return 'gold'
case 'Poire': return 'limegreen'
default: return 'indianred'
}
}
const pie = svg.append('g')
.attr('transform', `translate(${WIDTH / 2}, ${HEIGHT / 2})`)
pie.selectAll('path')
.data(pieData)
.enter()
.append('path')
.attr('d', arcCreator)
.attr('fill', color)
pie.selectAll('text')
.data(pieData)
.enter()
.append('text')
.attr('transform', d => `translate(${arcCreator.centroid(d)})`)
.attr('text-anchor', 'middle')
.text(d => `${d.data.fruit}s: ${d.data.num}`)
return container
}