Plot.plot({
height: 700,
width: 1000,
style: "overflow: visible;",
y: { grid: true },
x: { grid: true },
marks: [
Plot.ruleY([0]),
...pizzaNames.map(pizzaName => {
const isSelected = viewof namePizza.value.length > 0 ? viewof namePizza.value.includes(pizzaName) : true;
const pizzaData = filteredData.filter(d => isSelected && d.name === pizzaName);
return Plot.lineY(pizzaData, { x: "order_date", y: "orders", stroke: pizzaColors[pizzaName] });
}),
...pizzaNames.map(pizzaName => {
const isSelected = viewof namePizza.value.length > 0 ? viewof namePizza.value.includes(pizzaName) : true;
const pizzaData = filteredData.filter(d => isSelected && d.name === pizzaName);
return Plot.text(pizzaData, Plot.selectLast({ x: "order_date", y: "orders", z: "name", text: "name", textAnchor: "start", dx: 3 }));
})
]
});