plot = (options) => {
let { width, height, margin, marks, ...scales } = options;
const dimensions = { width: width-margin.left-margin.right, height: height-margin.bottom-margin.top };
scales = reifyScales(scales, dimensions);
scales = renameScales(scales);
const { xScale, yScale, colorScale } = scales;
return svg({ width, height },
g({x: margin.left, y: margin.top}, [
g({y: dimensions.height}, xAxis(xScale)),
g({}, yAxis(yScale)),
...colorScale ? [g({x: dimensions.width-350}, Legend(colorScale))] : [],
...marks.map(m =>
g({x: 0, y: -0.5}, plotMarkReified(m, scales, dimensions)))
]));
}