Plot.plot({
grid: true,
x: {label: "position →", domain: [_.min(sampled_positions), _.max(sampled_positions)]},
y: {label: "↑ value", domain: [-10, 10]},
marks: [
Plot.ruleX([0]),
Plot.ruleY([0]),
Plot.line(sampled_positions.map(position => [position, reality(position)])),
Plot.dot(sampled_positions,
{x: sampled_positions, y: noisy_sampled_reality, fill: "red"}),
Plot.line(belief_updates,
{x: "sampled_positions", y: "predictions", z: "iteration", stroke: "iteration"}),
Plot.text(belief_updates,
Plot.selectLast({x: "sampled_positions", y: "predictions", z: "iteration", text: "loss", textAnchor: "start", dx: -80})),
]
})