Plot up to three real-valued functions f(x), g(x), h(x) live, with a paired table of values, drag-to-pan, scroll-to-zoom, DEG/RAD toggle, and the same parser as the scientific calculator.
This is a graphing calculator: type up to three real-valued functions of x,
and they're plotted live on a shared canvas with a paired table of values.
The expression engine is the same recursive-descent parser as the standard
and scientific calculators — augmented with the variable x — so anything
that evaluates as a number with constants π and e, the four basic
operators, parentheses, percent / modulo / factorial, square / cube / square
root / cube root / reciprocal x⁻¹, the trigonometric and hyperbolic
families with their inverses, the natural and base-ten logarithms,
exponentials, and x^y powers can be graphed.
The right-hand panel hosts three function rows: f(x) =, g(x) =,
h(x) =. Type any expression in x into one of them and the curve
appears in its assigned color (blue, red, green) on the canvas to the left.
Leave a row empty and that curve simply isn't drawn. Each row carries a
tiny status indicator next to the input — green check when the expression
parses, red cross when it doesn't, blank when the field is empty — so you
can spot syntax errors without losing the graph.
Below the function inputs is the window editor: four numeric fields for
x_min, x_max, y_min, y_max. The default window is the standard
[-10, 10] square. Change any one and the canvas re-renders immediately.
Below the window editor are four shortcut buttons: + zooms in by 2×
around the center, − zooms out by 2×, Fit Y keeps the current x-window
and adjusts y to fit every defined function with a 10% margin, and Reset
returns to the [-10, 10] square. You can also drag the canvas to pan
and scroll over it to zoom around the cursor — the same gestures every
modern desktop graphing tool uses.
The trigonometric mode toggle sits below the window editor. The default is
DEG so a fresh visitor gets the intuitive sin(30) = 0.5. Switch to
RAD if you're working with radians; the choice persists across page
reloads via local storage. The mode applies to all six direct trig
functions and their three inverses.
The variable is the lower-case letter x. Everywhere the expression
engine accepts a number, you can also use x and the calculator will
substitute its value when evaluating. Implicit multiplication works the
same as everywhere else in Calcorama: 2x is 2 × x, x(x+1) is
x × (x+1), (x+1)(x-1) is (x+1) × (x-1). There is no explicit *
key on the inputs — type *, ×, or just press the variables / numbers
adjacent to each other.
Standard precedence applies: parentheses first, then exponents (^ is
right-associative, so 2^3^2 is 2^9 = 512), then multiplication /
division / modulo / implicit multiplication (left to right), then addition
and subtraction (left to right). Postfix operators bind tighter than
exponents: 5² is 25 and (2+3)² is 25, while -5² is -(5²) = -25 —
matching the convention in nearly every calculator and most CAS systems.
Below the graph is a table that ticks through nine x values starting at
x_start and increasing by Δx. Each function gets its own column,
colored to match its curve. Both controls accept any positive value, so
you can sample at large intervals (Δx = 100 to scan a polynomial across
[-100, 800]) or fine-grained ones (Δx = 0.1 for a careful look at the unit
interval). Cells where the function is not defined at that x — log of a
non-positive number, square root of a negative, division by zero — print
a long dash rather than a misleading number.
The renderer samples each function once per pixel column of the canvas,
which is fast enough that there is no perceptible lag as you type. To keep
asymptotic curves like tan(x) from drawing a misleading vertical line
across the screen at the asymptote, the renderer applies two safeguards:
samples returning NaN (the function is undefined at that x) lift the
pen, and adjacent samples that swing by more than three times the visible
y-range are also treated as a pen-lift. The result: tan(x) plots as a
proper sequence of disconnected branches rather than a continuous wiggle
through ±∞.
The three engagement preset chips above the input panel load three
ready-made trios. The polynomial trio (x², x³-2x, 2x+1) shows how
parabolas and cubics relate. The trig trio (sin(x), cos(x), tan(x))
flips into RAD quickly with a window like [-360, 360] so the periodic
shapes are visible at scale. The exp / ln / x² trio (exp(x), ln(x),
x²) demonstrates how exponential growth dominates polynomial growth and
how the natural logarithm is the inverse of the exponential, reflected
across the line y = x.
This is a 2D real-valued explicit-function plotter. It plots
y = f(x). It does not plot parametric curves (x(t), y(t)), polar
curves (r(θ)), implicit equations (x² + y² = 25), inequalities,
discrete data, vector fields, or 3D surfaces. There is no symbolic
manipulation: no derivative, no integral, no root-finder, no algebraic
simplifier. There is no animation, no slider variable beyond x, and no
cursor-trace readout. If you need any of those, look elsewhere — but for
plotting a function and a couple of comparisons against it, this is the
fastest possible workflow with no install, no account, no per-session
state to set up.