Skip to content
ScienceQuest
Maths & Data Visualiser School

Graphing Calculator

Plot several functions at once, pan and zoom to any window, and read values straight off each curve. No sign-in, and it shows where a curve breaks.

Visualiser

Drag to pan, scroll or pinch to zoom, and tap a point to read it. The reading stays put once taken. With the graph focused, the arrow keys pan, plus and minus zoom, and 0 returns to the starting window.

x
tap or hover the graph
y = x^2
n/a

Citing this tool

Last updated . Add the date you accessed it as well, which a citation of a page that can change asks for. If a specific result matters, cite the permalink from the tool’s share row instead of this page: it reproduces the exact parameters.

Teaching with this? You can put it on a class page or LMS for free, with no ads inside the frame. Get the embed code.

What to type

Type a function of x after the y =, such as x^2 or sin(x), and this graphing calculator plots it as you type, in a window you can pan and zoom. Anything you would write by hand, more or less. Powers use ^, so x^2, 2^x and x^-1 all work, and exponentiation groups from the right, so 2^3^2 is 512 rather than 64. Roots are sqrt(x) and cbrt(x). Logarithms are ln for the natural log, log for base ten, log2, and logb(base, x) for anything else.

Multiplication can be left out wherever it is unambiguous: 2x, 3sin(x) and (x+1)(x-1) all parse. The constants pi, tau and e are available by name, and if you paste a formula containing π, × or ÷ those are read as you would expect rather than rejected.

The full list of functions: sine, cosine and tangent with their inverses and hyperbolic forms, atan2, exp, the four logarithms, sqrt, cbrt, abs, sign, floor, ceil, round, trunc, pow, hypot, mod, min and max. The last two take as many arguments as you like, so max(x, -x) draws the absolute value the long way round.

The gap in 1 over x is not a bug

Plot 1/x and you get two separate curves with nothing joining them. That is the honest picture. At x = 0 the function has no value, and the samples immediately either side are enormous with opposite signs. Joining them draws a line straight down the screen through a place where the curve does not exist.

Most quick plotters draw that line, which is why so many graphs of tan x appear to show the asymptotes as part of the function. They are not part of it. Here each unbroken run of the curve is drawn as its own path, so the gap you see is a gap in the function.

Telling a genuine pole from a merely steep climb is the hard part, and it is worth knowing how the distinction is made because it explains the one case where the tool is conservative. A large step between neighbouring pixels is not enough on its own: 10000x also moves hundreds of units between adjacent pixels, and cutting it would erase a line that really does cross the window. So a suspicious pair is examined at several points in between, and the curve is only broken when the function runs a long way past both ends of that interval. A rounded peak overshoots its neighbours by a hair and keeps its line. A pole overshoots by orders of magnitude and loses it.

One unit is the same size on both axes

The window is squared to the shape of the canvas when the page loads and whenever you resize or rotate. That is not decoration. If the axes carry different scales then a gradient of 1 does not look like 45 degrees, a circle assembled from sqrt(9-x^2) and its negative comes out as an ellipse, and perpendicular lines do not look perpendicular. Each of those quietly teaches something false.

Zooming preserves the ratio, so it stays true however far in you go. Pan with a drag, zoom with the wheel or a pinch, and use the buttons or the keyboard if you would rather: with the graph focused, the arrow keys pan, plus and minus zoom, and 0 returns to the starting window.

Reading values off a curve

Move the pointer across the graph and a vertical guide follows it, with a dot where it meets each visible curve. The panel underneath lists the x you are pointing at and what every curve evaluates to there, as text rather than as pixels, so the numbers can be copied and a screen reader can read them.

Where a curve has no value at that x the readout says undefined rather than showing a blank or a zero. Zero is a value, and a calculator that prints it for ln(-1) is stating something false.

Comparing curves

Add up to six expressions. The coloured square beside each one hides and shows that curve without deleting it, which is the quickest way to see what one term is contributing: plot x^3 and x^3-3x together, then toggle between them.

A few pairs worth trying. sin(x) against sin(x)^2+cos(x)^2, where the second is the flat line at 1 that the identity promises. e^x against 1+x, which touch and separate, showing what a first-order approximation is worth. Or sin(x)/x, which has no value at the origin yet visibly heads for 1 from both sides, which is a limit you can see rather than take on trust.

When it refuses to plot something

An expression it cannot read produces a message naming the problem, not a blank graph. That choice is deliberate. The usual behaviour is for an unrecognised name to evaluate as nothing, so the curve silently fails to appear and you are left staring at empty axes with no way to tell whether you mistyped or the tool is broken.

So sinn(x) reports that it does not know sinn, 2+ reports that the + needs a value after it, and (x reports the unclosed bracket. Writing sin x without brackets is refused too, because sin x cos x has no reading anyone could predict, and guessing at one is worse than asking.

One case that surprises people: xy is refused. It could be x times y, or a variable named xy, and only x is a variable here. An expression that has no value somewhere is a different matter and is perfectly welcome. sqrt(x), ln(x) and 1/x all plot fine; they simply stop where their domain does, rather than being flattened along an edge, since a flat segment there would claim a value the function does not have.

Sharing what is on your screen

Every expression and the exact window are kept in the address bar, so copying the link shares precisely what you are looking at. Nobody needs an account, at either end, and there is no server involved: the link contains the state.

The Embed button gives an iframe snippet for a lesson page, a worksheet or a blog post. It is free to use. Please keep the caption link underneath it; marking it rel="nofollow" is fine.

Common mistakes

  • Writing 1/2x and expecting one over 2x. It means half of x, read left to right, the way Texas Instruments calculators released since 1996 read it; many Casio calculators give one over 2x instead. Use 1/(2x) for the other reading.
  • Expecting -x^2 to be positive. Exponentiation binds tighter than the minus sign, so it is the negative of x^2. Write (-x)^2 if you meant to square the negative.
  • Using log and expecting a natural log. Here log is base ten, matching hand calculators and school textbooks, and ln is the natural one.
  • Reading 2e5 as two times e times five. It is scientific notation, so 200000. Write 2*e*5 if you meant the product. 2e on its own does mean two times e, since there is no exponent following it.
  • Zooming a long way in and expecting unlimited detail. Below a window about a billionth of a unit wide, the arithmetic runs out of significant figures and neighbouring pixels would evaluate at the same x. Zoom stops there rather than pretending.

Common questions

Why does 1 over x have a gap in the middle instead of a vertical line?

Because there is no value there. At x = 0 the function is undefined, and the samples either side are large with opposite signs, so joining them would paint a line down the screen through a place the curve does not exist. Most quick plotters draw that line anyway, which is why they appear to show a vertical asymptote as part of the graph. Here the two branches are drawn as separate curves, which is what they are.

How do I type powers, roots and logarithms?

Use ^ for a power, so x^2 and 2^x both work, and x^-1 as well. Roots are sqrt(x) and cbrt(x). Logarithms are ln for natural log, log for base ten, log2, and logb(base, x) for any other base. Multiplication can be left out where it is obvious, so 2x, 3sin(x) and (x+1)(x-1) all parse. Pi and e are available by name, and pasting the symbol works too.

Does 1/2x mean half of x, or one over 2x?

Half of x. An implied multiplication binds exactly as tightly as a written multiplication sign, so 1/2x is read left to right as (1/2) times x. Hand calculators disagree here: Texas Instruments models released since 1996 read it the same way, but many Casio calculators let an implied multiplication bind tighter than division and give one over 2x. If you want one over 2x, write 1/(2x). This is a genuine ambiguity in written maths rather than a quirk, so it is worth being explicit about which reading you get.

Why does it refuse xy instead of plotting it?

Because xy could mean x times y or a variable called xy, and guessing would quietly plot something you did not ask for. Only x is a variable here, so write x*y only if you meant a second variable, which this tool does not plot. Anything it does not recognise is reported with the position in the expression, rather than evaluated as nothing and drawn as an empty graph.

Can I share a graph, or put it on my own page?

Yes to both. The address bar tracks every expression and the window you are looking at, so copying the link shares exactly what is on your screen, with no account needed at either end. The Embed button gives an iframe snippet for a lesson page or a blog, and it asks you to keep the caption link underneath it, which you are free to mark nofollow.