Plot.plot({
marginLeft: 100,
height: 500,
y: {
domain: [
...group1.map(d => d.letter),
"gap1",
...group2.map(d => d.letter),
"gap2",
...group3.map(d => d.letter),],
ticks: [
...group1.map((d) => d.letter),
...group2.map(d => d.letter),
...group3.map(d => d.letter),],
label: "",
tickFormat: (d, i) => {
switch(i) {
case 0: return "(group1) " + d
case group1.length: return "(group2) " + d
case group1.length + group2.length: return "(group3) " + d
default:
return d
}
}
},
x: {
grid: true
},
marks: [
Plot.barX(group1, {y: "letter", x: "frequency"}),
Plot.barX(group2, {y: "letter", x: "frequency"}),
Plot.barX(group3, {y: "letter", x: "frequency"}),
Plot.barX(data.filter (d=> d.group === "3"), {y: "letter", x: "frequency"}),
]
})