pie = arr => {
const data = arr;
const color = d3.scaleSequential(d3.interpolateSpectral).domain([0, data.length-1]);
const colors = {
domain: data.map(d => d.message),
range: data.map((i, j) => color(j))
};
return vl.markArc({outerRadius: 250})
.data(data)
.encode(
vl.tooltip().fieldN('message').fieldQ('value'),
vl.theta().fieldQ('value').stack(true).scale({range: [0.75 * Math.PI, 2.75 * Math.PI]}),
vl.color().fieldN('message').title('Error').scale(colors).legend({orient: 'right'}),
)
.config({view: {stroke: null}})
.width(500)
.height(500)
}