From Mac Guides

Jump to: navigation, search

Grapher is a graphing calculator application included with Mac OS X 10.4 (Tiger) and later. Originally named Curvus Pro X, it was purchased by Apple from Arizona Software in 2004. Grapher is able to draw both 2D and 3D graphs.


Using Grapher

The primary Grapher panes
The primary Grapher panes

There are three primary panes in a Grapher window: the equation list, the equation editor and the graph. Above these lies the toolbar. In the equation editor at the far right you'll find Image:Equation_pop-up.png, the "equation pop-up". To show the equation palette:

  • Window → Show Equation Palette, or
  • Image:Equation_pop-up.png → Show Equation Palette, or
  • shift-⌘-E

Some commonly used items (eg π, √ ) can be entered with a single keystroke when combined with the "option" modifier key. To view these special characters, open the keyboard viewer and hold down "option" or "option+shift".

Values & Definitions

Every Grapher expression has a value type: scalar, multi-value, an interval, or a 2D or 3D vector.

TypeSyntax ExampleNotes
scalar 1.5numeric constant
π Built-in constant. You can type out the constant name ("pi"), and Grapher will replace it with the symbol ("π")
multi-value{0, π, 2π}

{0..2} {0,0.5..2}

The multi-valued type is a (finite) set of values. When used in an expression, the expression is evaluated for each value. The expression is then multi-valued. For example, {0,1,2} * π is equivalent to {0,π,2π}. For another example, with a:={0,π/2,π}, we have cos(a)={cos(0),cos(π/2),cos(π)}={1,0,-1}. The form a..b produces a range of values from the lower to higher number at increments of 1 (e.g. {0..2} is equivalent to {0, 1, 2}). The form a,b..c produces a range of values from the first up to the third using the difference between the first two as the increment (e.g. {0, 0.5 .. 2} is equivalent to {0, 0.5, 1, 1.5, 2}). The number of dots, as long as there are at least two, does not seem to matter.


An interval includes all numbers from the lower to the higher, including the endpoints. An interval is another type of set. Unlike multi-values, an interval is infinite in size as it is a contiguous set of values.
vector Image:Vect_x_y.png


Use equation palette → Operators to enter vectors. A vector whose elements are the axes variables (e.g. Image:Vect_x_y.png) is called an "axis vector".

Some operators and functions can take more than one type for an argument. For example, you can add a multi-value and a scalar. The types of the arguments determines the type of the expression. One thing that differentiates intervals from multi-values is that some operators and functions can be applied the latter but not to intervals.

Equations in Grapher are either definitions or graph equations. Definitions let you define your own constants and expressions. To define a symbol, create a new equation, then enter the symbol name (and argument if it's a function), followed by "=" or ":=" and an expression. It's best to use ":=" when defining symbols; when using "=", Grapher may misinterpret it as a graph equation and give syntax errors. You can also define a symbol inline at the end of a graph equation by appending a comma followed by the definition. Example definitions:

  • scalar constant:φ := (1+5)/2
  • function:f(t) := t sin(t)
  • inline:y=mx+b,m=2,b=-1

Equations that define symbols are global, and can be used in any other equation. Symbols defined inline are local to the equation and can't be referred to elsewhere. If a global and local symbol have the same name, the local symbol takes precedence in the equation that defines it.

Animated Parameters

You can define a constant as an "animated parameter", which lets you control the value of the constant with a slider and play an animation in the graph pane of what happens as the parameter changes. To create an animated parameter, define a constant, then (with it highlighted) click Equation → Animate Parameter (or press alt-⌘-A). The equation editor for an animated parameter has special controls.


To change the settings for an animated parameter, such as the minimum and maximum values, or whether the parameter is discrete or continuous, click Image:Animated_parameter_settings.png.


Grapher has the standard arithmetic operators you find on calculators: ^ (power), *, /, + and -/. In addition are operators found on graphing calculators.

Boolean 1 ==equal Comparison operators.
!=, <>not equal
<<less than
>>greater than
<=less than or equal
>=greater than or equal
equation palette → Symbols → ¬
not Boolean negation.
equation palette → Symbols → ∧
and Conjunction. "a & b" is true if both "a" and "b" are true. You can also enter "∧" by turning off shortcuts in the equation palette and typing "^".
4 |
equation palette → Symbols → ∨
or Disjunction. "a | b" is true if at least one of "a" or "b" are true.
equation palette → Symbols → ⊗xor, either-or, exclusive-or "a ⊗ b" is true if either "a" or "b" is true (not both).
equation palette → Symbols → ∈element of, is-in "x ∈ [-1,5]" is true if x is in the interval "[-1, 5]"
equation palette → Symbols → ∉not an element of, not-in "x ∉ [-1,5]" is true if x is not in the interval "[-1, 5]"

option-v, equation palette → Standard → 


square root
equation palette → Standard →  n-th root

equation palette → Standard → ▯

Combinatorics Image:NCk.png equation palette → Operators → Image:Combination.png choose Number of ways of choosing k items from n items.
nCk = n! / k!(n-k)!
equation palette → Symbols → ∩
equation palette → Symbols → ∪
Piecewise Image:Piecewise.pngImage:Equation_pop-up.png → Image:Piecewise_x_neg_0_pos.png Left column is for values, right column is for tests.
if-then Value of "a?b" is "b" if "a" is true, undefined otherwise. "a:b" is equivalent to "a?b".
if-then-else Value of "a?b:c" is "b" if "a" is true, "c" otherwise. "a:b:c" is equivalent to "a?b:c".
Matrix T^ TtransposeCan be applied to matrices or vectors. Dot products can be calculated with "uTv".
Series Image:Sum.png option-s
Image:Equation_pop-up.png → ∑
equation palette → Operators → ∑
Image:Product.png option-shift-P
Image:Equation_pop-up.png → ∏
equation palette → Operators → ∏
Calculusoption-d, Image:Equation_pop-up.png → ∂partial differential
Image:Partial_wrt_t.png ∂ / ∂ t
equation palette → Operators → Image:Partial_wrt_t.png
partial derivative wrt t Leibniz's notation. If you use the equation palette to enter the derivative operator, you can change the differential 't' in the normal way (selecting it & typing a replacement).
Image:Nth_partial_wrt_t.png ∂ ^ n / ∂ t ^ n
equation palette → Operators → Image:Nth_partial_wrt_t.png
nth partial derivative wrt t You can change the differential 't' and degree 'n' in the normal way.
Image:Equation_pop-up.png → Image:X_dot.png
derivative Derivative, using Lagrange's and Newton's notation, respectively. Repeat n times for the nth derivative.
Image:Integral.png option-b
Image:Equation_pop-up.png → ∫
equation palette → Operators → ∫
integral Performs numeric, rather than symbolic, integration


In integrals, the differential element comes before the function to integrate: Image:Integral_dx_f(x).png, not Image:Integral_f(x)dx.png. Due to operator precedence, you might need to enclose in parentheses the expression you're integrating, else only the first part of the expression will be integrated. The easiest way of creating an integral is to type the function in the equation editor, select it, then click Equation → Integrate, which will properly parenthesize the expression.

Inverse functions

Graphing the inverse of a function uses a simple if surprising approach: instead of defining y as a function of x, simply define x as a function of y. Grapher will then use the y-axis for the independent variable and the x-axis for the dependent. Note that this doesn't really plot the inverse function, as a given x-value can have multiple y-values (try plotting x=tan(y)).

Parametric equations

Parametric equations are based on vectors and ranges. Rather than setting the default dependent variable "y" equal to an expression, you set an axis vector (eg Image:Vect_x_y.png) equal to a vector expression. Independent variables can have any name but must have a range value. The independent variable can be defined inline or separately from the parametric equation. See examples below.


Function Graph Output
Image:Parametric_circle_equation.png Image:Circle_graph.png


Image:Mulit-range eqn.png Image:Mulit-range graph.png


See also