Plot.plot({
marks: [
Plot.frame(),
Plot.barX(data, {
x: "count",
y: "login",
fill: "black",
render: (index, scales, values, dimensions, context, next) => {
const g = next(index, scales, values, dimensions, context, next);
const children = d3.select(g).selectChildren();
children
.on("click", function (event, i) {
const selection = d3.select(event.target);
if (selection.classed("selected")) {
selection.classed("selected", false).style("fill", "black");
} else {
selection.classed("selected", true).style("fill", "darkred");
}
mutable datum = data[i];
})
.on("mouseover", function () {
d3.select(this).style("opacity", 0.5);
})
.on("mouseout", function () {
d3.select(this).style("opacity", 1);
children
.filter(function () {
return !d3.select(this).classed("selected");
})
.style("fill", "black");
});
return g;
}
})
]
})