MathGrapher: Graphing Calculator-Function Grapher

Free online 2D graphing calculator (plotter), or curve calculator, that can plot piecewise, linear, quadratic, cubic, quartic, polynomial, trigonometric, hyperbolic, exponential, logarithmic, inverse functions given in different forms: explicit, implicit, polar, and parametric. It can also graph conic sections, arbitrary inequalities or systems of inequalities, slope fields (vector fields or direction fields), and visualize the Riemann Sum. Plots can be styled and customized according to needs.

To plot a 3d graph, use 3d grapher.

Show Instructions
  • In general, you can skip the multiplication sign, so `5x` is equivalent to `5*x`.
  • In general, you can skip parentheses, but be very careful: e^3x is `e^3x`, and e^(3x) is `e^(3x)`.
  • Also, be careful when you write fractions: 1/x^2 ln(x) is `1/x^2 ln(x)`, and 1/(x^2 ln(x)) is `1/(x^2 ln(x))`.
  • If you skip parentheses or a multiplication sign, type at least a whitespace, i.e. write sin x (or even better sin(x)) instead of sinx.
  • Sometimes I see expressions like tan^2xsec^3x: this will be parsed as `tan^(2*3)(x sec(x))`. To get `tan^2(x)sec^3(x)`, use parentheses: tan^2(x)sec^3(x).
  • Similarly, tanxsec^3x will be parsed as `tan(xsec^3(x))`. To get `tan(x)sec^3(x)`, use parentheses: tan(x)sec^3(x).
  • From the table below, you can notice that sech is not supported, but you can still enter it using the identity `sech(x)=1/cosh(x)`.
  • If you get an error, double check your expression, add parentheses and multiplication signs where needed, and consult the table below.
  • All suggestions and improvements are welcome. Please leave them in comments.
The following table contains the supported operations and functions:
TypeGet
Constants
ee
pi`pi`
ii (imaginary unit)
Operations
a+ba+b
a-ba-b
a*b`a*b`
a^b, a**b`a^b`
sqrt(x), x^(1/2)`sqrt(x)`
cbrt(x), x^(1/3)`root(3)(x)`
root(x,n), x^(1/n)`root(n)(x)`
x^(a/b)`x^(a/b)`
abs(x)`|x|`
Functions
e^x`e^x`
ln(x), log(x)ln(x)
ln(x)/ln(a)`log_a(x)`
Trigonometric Functions
sin(x)sin(x)
cos(x)cos(x)
tan(x)tan(x), tg(x)
cot(x)cot(x), ctg(x)
sec(x)sec(x)
csc(x)csc(x), cosec(x)
Inverse Trigonometric Functions
asin(x), arcsin(x), sin^-1(x)asin(x)
acos(x), arccos(x), cos^-1(x)acos(x)
atan(x), arctan(x), tan^-1(x)atan(x)
acot(x), arccot(x), cot^-1(x)acot(x)
asec(x), arcsec(x), sec^-1(x)asec(x)
acsc(x), arccsc(x), csc^-1(x)acsc(x)
Hyperbolic Functions
sinh(x)sinh(x)
cosh(x)cosh(x)
tanh(x)tanh(x)
coth(x)coth(x)
1/cosh(x)sech(x)
1/sinh(x)csch(x)
Inverse Hyperbolic Functions
asinh(x), arcsinh(x), sinh^-1(x)asinh(x)
acosh(x), arccosh(x), cosh^-1(x)acosh(x)
atanh(x), arctanh(x), tanh^-1(x)atanh(x)
acoth(x), arccoth(x), cot^-1(x)acoth(x)
acosh(1/x)asech(x)
asinh(1/x)acsch(x)

To draw a parabola, ellipse or hyperbola, choose implicit option.

You can pass a function as a parameter: https://www.emathhelp.net/calculators/calculus-1/online-graphing-calculator/?f=sin(x) will draw y=sin(x)

Pan the graph (move it) by holding Shift key and dragging the graph with the mouse.

Zoom the graph in and out by holding Shift key and using the mouse wheel.

The above operations can be very slow for more than 2 graphs. To avoid it, delete all graphs, pan and zoom, and then plot the graphs again.

Save as...
Get a short link to this page or link to the plot's image for embedding