plot(f, a, b) samples a function across a span and draws it. Like map, iterate, root and integral, it takes the name of a function — there are no lambdas, and a call's callee is always a name.
A fixed number of samples, whatever the span. That is integral's rule — a fixed amount of work rather than a tolerance test — and it is what makes a drawing terminate and come out the same on every machine.
The span carries units, and so does what the function returns. Both axes are labelled from the dimensions rather than from anything the author writes twice.
A curve that leaves the plane is drawn with a gap rather than a line through values the function never took. The summary line counts them.
The gain of an LLC resonant tank against switching frequency — the curve examples/llc.nomo designs against, and the reason a worksheet language needs plots at all. Its peak is the thing an engineer is looking for.
A plot is a value, so it can be bound to a name. It is not a number, though: there is no arithmetic on one.
A flat function still has a chart: the axis is given an extent rather than dividing by one of zero width.
Several curves on one plot: every argument but the last two names one. They share the span and the vertical axis, so a gain drawn beside a length is refused rather than given two meanings on one axis.
A family of curves is written by naming each member. That is what a language with no lambdas has instead of one, and it is what an engineer wants anyway: the load the tank is designed at has a name on the page.
A table of measured points is the other kind of plot: an n-by-2 matrix, x in the first column and y in the second. No span is written and none is needed — the points brought their own x — so the horizontal axis is fitted to the data the way the vertical one always was.
The shape augment builds, which is how a worksheet plots something it just computed: two columns joined into a table of points.
Several tables on one plot, and each carries the name it was written under.