Logo

MonoCalc

/

Function Graph Plotter

Math

Example curves

Functions

f(x) =

Read as x ^ 3 - 3 * x + 1

Window

Range boxes understand expressions: 2*pi, -pi/2 and 1e3 all work.

50–5000; higher is smoother
Decimal places in every readout

f(x) = x ^ 3 - 3 * x + 1

Graph of f(x)Graph of f(x) = x ^ 3 - 3 * x + 1 for x from -4.00 to 4.00 and y from -57.17 to 59.17.-4-3-2-101234-40-2002040xy

Drag to pan, scroll to zoom, or focus the plot and use the arrow keys. Hovering traces the analysed curve.

Export

Analysis controls

Roots, extrema, derivative and integral all follow this choice
Leave blank and hover the plot instead

Slider parameters

Use a, b and c anywhere in an expression — try a*sin(b*x).

Results for f(x)

Roots (x-intercepts)

-1.8794, 0.3473, 1.5321

Where the curve crosses the x-axis

y-intercept

1.0000

The value of f(0)

Local extrema

Max (-1.0000, 3.0000) · Min (1.0000, -1.0000)

Turning points, where the slope changes sign

Range over window

[-51.0000, 53.0000]

Lowest and highest sampled y value

Discontinuities

None detected

Poles and points where the function is undefined

Symmetry

Neither even nor odd

Mirror symmetry about the axes

About This Tool

Function Graph Plotter — Draw and Analyse Any Curve Online

A function graph plotter turns an algebraic expression into a picture. Type something like x^3 - 3x + 1, sin(x)/x or exp(-x^2), choose an x-window, and the curve appears with labelled axes, a grid and every interesting feature marked. Everything runs in your browser, so there is nothing to install and nothing you type leaves your device.

How the plotter builds a curve

Your expression is parsed once into a syntax tree and compiled, then evaluated at several hundred evenly spaced x values across the window. Compiling first and evaluating many times is what keeps the online graphing calculator fast enough to redraw while you type. Each evaluation is guarded, so a value that is undefined, infinite or complex becomes a gap rather than an error. That is why sqrt(x) simply stops at the origin, and why tan(x) is drawn as separate branches instead of one line crashing through each asymptote.

What the tool works out for you

The same samples that draw the curve also drive a full numerical analysis. Consecutive points that straddle zero bracket a root, which is then refined by bisection to a tolerance near 1e-10. Sign changes in the numerical derivative locate local maxima and minima, classified by the direction of the change. Applying the same routine to the difference between two curves finds their intersections — the graphical way to solve an equation such as x^2 = x + 2, whose crossings at (−1, 1) and (2, 4) are exactly the algebraic solutions.

You also get the y-intercept, the range attained across the window, detected discontinuities, and whether the function is even, odd or neither. Turn on Show derivative to overlay a dashed f'(x), or Show definite integral to shade the signed area between two bounds. The area is computed with composite Simpson's rule over a thousand subintervals, which is exact for cubics and extremely close for any smooth function.

Beyond y = f(x)

Many important curves cannot be written as a single function of x. Parametric mode sweeps a parameter t and plots the point (x(t), y(t)), which is how you draw circles, ellipses and self-intersecting Lissajous figures. Polar mode sweeps an angle and plots r(θ), converting to Cartesian coordinates with x = r·cos(θ) and y = r·sin(θ) — the route to cardioids and rose curves. Switch on the equal-aspect option in either mode so that a circle renders as a genuine circle rather than an ellipse.

Writing expressions the plotter understands

The parser accepts ordinary mathematical notation: + - * /, ^ for powers, brackets for grouping, and named functions including sqrt, abs, exp, log, log10, the trigonometric family, their inverses and the hyperbolics. Implicit multiplication is handled, so 2x, 3(x+1) and 2sin(x) all mean what you expect. The constants pi and e are built in — and the window boxes accept expressions too, so an x-range of -2*pi to 2*pi is entered directly rather than approximated as −6.28.

Three named parameters, a, b and c, can appear anywhere in an expression and are driven by sliders. Plot a*sin(b*x) and drag them to watch amplitude and frequency change in real time, or press play to sweep a automatically — an unusually direct way to see what a coefficient actually does to a family of curves.

Sampling has limits
Numerical plotting can only see features wider than the gap between samples. A very narrow spike, a rapid oscillation such as sin(1/x) near the origin, or a root squeezed between two sample points can be missed entirely. If a curve looks suspicious, raise the sample count or zoom into the region before trusting what you see.

Degrees, radians and reading the results

The angle unit changes how every trigonometric function interprets its argument. In radians sin(90) is about 0.894; in degrees it is exactly 1. The setting applies to inverse functions in reverse — asin(1) returns 90 in degrees and 1.5708 in radians — and to the polar sweep, where a full revolution is 0 to 360 or 0 to 2*pi respectively. Calculus results such as derivatives and integrals of trigonometric functions only take their familiar textbook forms in radians, so keep radians selected for coursework unless a question explicitly asks otherwise.

Hovering the plot traces the analysed curve, reporting the exact coordinate and the slope under the cursor. Drag to pan, scroll to zoom, and export the finished picture as PNG or SVG for a report or a worksheet, or the sampled points as CSV for a spreadsheet.

Frequently Asked Questions

Is the Function Graph Plotter free?

Yes, Function Graph Plotter is totally free :)

Can I use the Function Graph Plotter offline?

Yes, you can install the webapp as PWA.

Is it safe to use Function Graph Plotter?

Yes, any data related to Function Graph Plotter only stored in your browser (if storage required). You can simply clear browser cache to clear all the stored data. We do not store any data on server.

How does this function graph plotter work?

Your expression is parsed once into a syntax tree, compiled, and then evaluated at several hundred evenly spaced x values across the window you chose. Those points are joined into a curve, and the same samples are reused to find roots, turning points and intersections numerically. Everything runs in your browser, so nothing you type is sent anywhere.

What syntax does the expression box accept?

Standard math notation: +, -, *, / and ^ for powers, brackets for grouping, and the usual named functions such as sqrt, abs, exp, log, log10, sin, cos, tan, their inverses and the hyperbolics. The constants pi and e are built in, and implicit multiplication works, so 2x, 3(x+1) and 2sin(x) all parse the way you would expect.

Why does my curve have a gap in it?

A gap means the function has no real value there, or has a pole. sqrt(x) is undefined for negative x, log(x) for x at or below zero, and 1/x and tan(x) blow up at their asymptotes. The plotter deliberately breaks the line at those points instead of drawing a false vertical stroke through the asymptote.

How accurate are the roots, extrema and the integral?

Roots and turning points are bracketed on the sample grid and then refined by bisection to a tolerance of about 1e-10, so the values shown are accurate to the displayed precision. The definite integral uses composite Simpson's rule over 1,000 subintervals, which is exact for polynomials up to degree three and very close for smooth functions. Features narrower than the sample spacing can still be missed — raise the sample count if you suspect one.

Can it plot circles, spirals and other curves that are not y = f(x)?

Yes, through the parametric and polar modes. Parametric mode sweeps a parameter t and plots the point (x(t), y(t)), which handles circles, ellipses and Lissajous figures. Polar mode sweeps an angle and plots r(θ), which is how you draw cardioids and rose curves. Turn on the aspect-ratio lock so circles render as true circles rather than ellipses.

Does the degrees setting change my results?

It changes how trigonometric functions read their input and report their output. In degrees mode sin(90) is 1 rather than 0.894, and asin(1) returns 90 instead of 1.5708. The setting applies to the polar angle sweep as well, so a full polar revolution is 0 to 360 in degrees and 0 to 2*pi in radians.