Plot.plot({
style: {
background: 'white',
font: '12px sans-serif',
},
marginRight: 80,
marginTop: 25,
marginLeft: 45,
width: 700,
marks: [
...[
{data: perfam, label: 'automerge', color: 'purple'},
{data: perfamrs, label: 'automerge-rs', color: 'darkgreen'},
{data: perfref, label: 'ref-crdts', color: 'red'},
{data: perfyjs, label: 'yjs', color: 'blue'},
{data: perfwasm, label: 'rust-wasm', color: 'green'},
].map(({data, label, color}) => [
Plot.line(data, {
filter: (d, i) => i !== 0,
x: 'count',
y: d => d.thisTime/1000,
stroke: color,
}),
Plot.text(data, Plot.selectLast({x: "count", y: d => d.thisTime/1000, text: () => label, textAnchor: "start", dx: 3}))
]),
Plot.ruleX([0, 260000])
],
x: {label: 'txns →'},
y: {
type: 'log', domain: [0.0005, 4], tickFormat: ',',
label: '↑ avg time per txn (ms). Smaller is better'
},
grid: true
})