Type an expression in terms of x and it's plotted immediately — no y= needed, though
it's accepted and stripped if you type it. The parser is a small hand-written recursive-descent evaluator
(no eval involved), so 2x, 2*x and x*2 all mean exactly
the same thing, and unsupported input is rejected rather than silently misread.
Plotting 1/x shows two separate branches meeting nowhere near x = 0 — because division by zero is undefined, not infinite in a drawable sense, the curve correctly breaks into two pieces instead of joining with a vertical line.
Standard notation: +, -, *, /, ^ for powers, and parentheses. sin, cos, tan, asin, acos, atan, sqrt, cbrt, abs, ln, log, log2, exp, floor, ceil, round and sign all work, along with the constants pi and e. Implicit multiplication works too — 2x, 2sin(x) and (x+1)(x-1) are all understood without a * sign.
A vertical line at an asymptote like x=0 for 1/x isn't actually part of the function's graph — the function is undefined there, not infinite in a way that draws a line. This tool detects the jump and breaks the curve into separate pieces, the same way a correct hand-drawn sketch would.
Yes — the x and y axes always share the same scale (the same number of pixels per unit), so a function like sqrt(9-x^2) traces a genuine semicircle rather than a squashed ellipse, at every zoom level.
Up to eight, each in its own colour, any of which can be hidden or deleted independently — useful for comparing a function against its derivative, or seeing where two curves intersect.
Real-valued functions of a single variable x. The curve is sampled across the width of the plot, so any feature narrower than the spacing between samples — a very fast oscillation, a narrow spike — can be missed entirely; if a shape looks suspiciously smooth, zoom in and check. Breaks at asymptotes are detected by a jump test rather than by solving for them, inputs with no real result simply leave a gap, and implicit relations such as x² + y² = 1 cannot be entered because the parser expects y as a function of x.
This page has changed in 45 archived releases, but each of those was a site-wide pass, so none is attributable to this tool on its own and none is listed here. That is not a claim that the tool never changed — a release that reworked many pages at once may well have altered this one too. The changelog has them.