Making a graph in Theorist is easy enough, it's one menu and maybe a dialog or two. But really there's a lot that goes on behind the scenes in a graph. Inside, a graph actually has a nonprocedural programming language. The graph image is composed of parts called plots. When you choose a menu item or click on a button to make a new graph, it actually writes the plots you need for you.

If a graph had no **plots** in it, you wouldn't see anything.

The simplest plot is a scatter plot with one marker in it.

The diamond will show wherever the coordinates tell it to. In this case, the diamond
is centered at **(1.9, 2.9)**. You can click and select and change the coordinates.
Just change the number 1.9 or the number 2.9. You can also change the size, color
and shape of the diamond marker with your mouse and keyboard.

A more interesting plot is a line plot.

The line plot traces a linear path. The path is traced out by a point, in this case, the point at (cos(t),sin(4/3*t)) as the parameter t moves from its minimum to its maximum value. As the notebook states, t=-3...4 but as you have already figured out, you can change them. Try changing the 4 to 20.

A simple linear graph of a function is done in Theorist using the point (x, function).

Here you see the constants **left** and **right** used. There are also constants
**top** and **bottom**. They are set to the values of the edges of the graph.
If you scroll around the graph, they change to match. That way you always have the
graph going from the left edge to the right edge.

Usually, though, the equation for a graph is outside the graph, as in this example.
The variable *y* is defined in the equation at the top. The point in the graph
is simply (x, y). The value of x is the parameter, and the value of y is calculated
from the equation.

Even more interesting is a surface plot. It works like a line plot but in two dimensions. As a line plot does, it has a vector that traces out a location. But in this case there are two parameters.

Of course there's nothing from stopping you from entering any expressions you want at all for the point that traces out the surface, or from using completely different parameters.