function longerY(keys, options) {
const [Y, setY] = Plot.column();
const [Z, setZ] = Plot.column();
return Plot.transform(
{
y: Y,
z: Z,
...Object.fromEntries(
Object.entries(options).map(([key, value]) => [
key,
value === "z" ? Z : value
])
)
},
(data, facets) => {
const K = Array.from(keys, (k) => [k, Plot.valueof(data, k)]);
const Y = setY([]);
const Z = setZ([]);
const D = [];
const F = [];
let j = 0;
for (const I of facets) {
const J = [];
for (const [k, V] of K) {
for (const i of I) {
J.push(j++);
Y.push(V[i]);
Z.push(k);
D.push(data[i]);
}
}
F.push(J);
}
return { data: D, facets: F };
}
);
}