T-Shirts|Make a Graph|Read the Guide

October 21, 2021

New Feature

You may now use the function cbrt for a cube root instead of using a fractional exponent.


In XY Scatter plots, you don’t need semicolons between the ordered pairs anymore.

October 7, 2021


Functions such as x^(1/3) now display correctly for both negative and positive values of x.

August 31, 2021


Functions of the form -x^y are now parsed without errors.

August 24, 2021


Piecewise functions no longer crash with certain combinations of interval and grid settings.


Arrows at the top and bottom edges of functions now consistently point in the correct direction.


Inappropriate arrows no longer appear at the left and right edges of some piecewise functions.

August 21, 2021

New Feature

You can now choose the color of captions.

New Feature

You can now place captions either above or below the graph.

New Feature

Broken axes are now represented as such. For example, if your viewing window has x ∈ [5, 10], the y-axis will appear on the left, and a broken axis symbol will show that the x-axis is broken between 0 and 5.

New Feature

All text entry fields now have a button to clear the current entry.

New Feature

Html entities for special characters are now replaced with their corresponding special characters as you type.


Polar grids no longer show x and y axes. This better matches the practice seen in most textbooks, etc.


The y-axes of semi-log plots are now labeled with typographical exponents, e.g., 103 instead of 10^3.


Implicit plots and slope fields are no longer options for a semi-log grid. This prevents the interface from getting stuck in unintended long-running calculations.


There are some minor changes in the graphs' line widths and text sizes.


Function plot types no longer omit portions of a curve for some graphs.


Open circles over transparent backgrounds now display correctly instead of being filled with white.


Shading on a polar grid is now confined to the circular polar grid instead of extending to the margins.


Shading with the Implicit plot type should now work consistently. Previously, shading occasionally leaked through implicit curves.


The circle symbol for Scatter plots now displays correctly in legends.

June 29, 2021


The grid no longer disappears for certain settings of the viewing window.

The Big Update (June 18, 2021)

New Feature

By popular demand, I have restored full manual control over the spacing of grid lines and labels. Four numeric settings in the Grid panel now give you full control over the existence and spacing of lines and labels. You can leave any or all of them blank if you don’t want the lines or labels on that axis.

New Feature

I’ts now easier to drag the captions, annotations, and labels exactly where you want them. You can see an outline of the texts as you drag them, and you can usually modify a graph without resetting the texts' positions.

New Feature

You can now enter a much wider variety of special characters in captions, legends, and annotations. Instead of a small selection of buttons, you now use HTML entities instead. This allows a huge variety of special characters, including Greek letters, mathematical symbols, and arrows. More information is given in the “Special Characters in Text” section of this guide.

New Feature

You can now select a transparent background instead of solid white. This option is found in the General Appearance & Accessibility panel at the bottom.

New Feature

You can now change text sizes and line widths. These settings are also in the new General Appearance & Accessibility panel.

New Feature

Collapsed plot panels now display a summary of what you have entered in that panel.

New Feature

I added an open circle to the possible symbols in XY Scatter plots.


Annotations are back to being entered in separate boxes instead of a single box with semicolon separators. I changed this because the HTML entities that are now supported in the annotations contain their own semicolons, and using semicolons for two different purposes in a single expression is just confusing.


Though you no longer use semicolons to separate annotations, you now must use semicolons to separate ordered pairs, asymptotes, and intervals. (The on-screen examples will remind you.) This change prevents GraphFree from parsing some expressions incorrectly.


I’ve changed the arrows at the ends of functions from solid triangles to simple v-shaped lines. I doubt that everyone will agree on which style is better. But infinite intervals on the number line look much better in the new style, so I used it across the board.


Stray arrows no longer appear in the graph’s margins.


In the Cartesian (Trig) grid type, fractions not recognized by GraphFree’s automatic trig labeling are now displayed as decimal approximations. (They previously appeared as fractions, but not the correct ones if GraphFree didn’t recognize them.)

Entering Functions

The new GraphFree is designed for convenient keyboard use, making data entry faster in most situations. If there’s a button for it on a traditional calculator, there’s probably a way to type it now.

Don’t get hung up about whether or not to include spaces. They’re included in some of the examples to make them more readable, but they’re never required.

SituationWhat You Can Type
Exponents2^5, 3^(x+2), x^-3
Square rootsqrt(x + 2)
Mathematical constants e and pipi, e, 5pi, e^x
Scientific notation, e.g., 2 × 1062E6, 4E-5
Be sure to use a capital E!
(x + 3)(x + 2)(x + 3)(x + 2)
No, you don’t need the multiplication sign.
Logarithmslog(1000), ln(e)
Log with different bases, e.g., log2xln(x)/ln(2)
(using the change of base formula)
sin2xsin^2 (x)
Of course, (sin(x))^2 still works if you’re used to those other calculators.

Complete Function List

CategoryAvailable Functions
Basic Math & Algebraabs (absolute value), sqrt (square root), cbrt (cube root)
Logarithmicln (natural log) and log (base 10)
Trigonometricsin, cos, tan, cot, sec, csc
Inverse Trigonometricarcsin, arccos, arctan, arccot, arcsec, arccsc
Hyperbolicsinh, cosh, tanh, coth, sech, csch
Inverse Hyperbolicarcsinh, arccosh, arctanh, arccoth, arcsech, arccsch

Graphing Piecewise Functions

You may express the conditions of a piecewise function using either inequalities or interval notation. You can express infinite intervals in interval notation using inf for infinity.

How to create a piecewise graph

Circles, Ellipses, Hyperbolas, Etc.

To graph conic sections, select the Implicit plot type and enter the full equation, equals sign and all. If you’re on a slow computer, be aware that the implicit plot type might take a little longer to run, especially if you set large values for the plot width and height.

Implicit plot examples

Vertical Lines

If you want a dashed vertical line for an asymptote, enter the equation (e.g., x = 4) with the Asymptote plot type. You can even enter multiple asymptotes at once.

If you want a solid vertical line instead, enter the equation in the Implicit plot type. In the implicit plot type, however, you can enter only one equation in each plot.

How to plot vertical lines

The Cartesian (Trig) Grid

This grid type is perfect when your relevant x-values will be expressed in terms of π. With the Cartesian (Trig) grid type, you enter the x-bounds of your grid in terms of π, and grid labels for the common fractions of π will display as exact values (e.g., π/6) instead of decimal approximations. If the spacing between labels does not have a commonly used denominator, the label will still be expressed in terms of π, but using decimal approximations instead of exact fractions. GraphFree considers integers and fractions with denominators of 2, 3, 4, 6, 8, 12, 16, 24, and 48 to be commonly used fractions that can be displayed as exact values.

The Cartesian (Trig) grid type

Polygons & Polylines

The Polyline plot type has two quite different uses. One is to create polygons such as those that might be used in coorinate geometry questions. For this use, you will usually enable the Connect Endpoints option

Without the endpoints connected, the Polyline plot is great for creating some graphs that would be annoying to assemble as piecewise functions. Instead of specifying equations and intervals of the various segments, simply specify the points you wish to connect.

When you enter the ordered pairs, you really do need the parentheses as well as the semicolons between the pairs.

Polygon and motion graphs

Special Characters in Text

Special characters are supported in axis labels, the caption, legend texts, and annotations.

The buttons to copy and paste certain special characters have been replaced with support for HTML entities. These may not be quite as convenient as the buttons, but they allow you to use a much wider variety of special characters than you could before.

HTML entities are text sequences that begin with an ampersand and end with a semicolon. For example, the HTML entity for π is π. There are HTML entities for Greek letters, mathematical symbols, arrows, and much more. You can see an offsite list of the available entities here. (I can‘t guarantee that every entity someone might wish to use will be available in the font GraphFree uses, but most commonly used mathematical symbols are.)

Here are some more examples:

Desired TextHow to Type It
Δm, in μmΔm, in μm
↓ relative maximum↓ relative maximum
m∠A = 60°m∠A = 60°
f″(x) > 0 where f′(x) is increasing.f″(x) > 0 where f′(x) is increasing.
√((x + 1)/x) → 1 as x → ∞√((x + 1)/x) → 1 as x → ∞

It may help to notice that in, the entities for Greek capital letters are themselves capitalized, while the entities for lower case Greek letters are not. For example, the entity Σ makes the capital Σ used for summation, while σ makes the lower case σ used for standard deviation.

There is also a pattern to the arrow entities. They are →, ←, ↑, and ↓, where the initial letters r, l, u, and d stand for right, left, up, and down.

Caption, Legend, & Annotations

The caption, or title, appears either above or below the graph.

The legend explains the meaning of different lines or scatter plot symbols. It appears either to the right of the graph or below it, depending on the width of the graph.

Annotations are used for any other notes you wish to add. You can use the mouse to drag them anywhere on the graph you wish. (For that matter, you can move the captions and legends too if you feel the need.)

You can include a variety of mathematical symbols and other special charaacters using HTML entities, as described in the "Special Chaaracters in Text" section of this guide.

Caption, legend, and annotation

Shading a Region

To shade a region of your graph specify an ordered pair inside the region you wish to shade. To shade multiple regions, enter a point inside each region, separated by semicolons.

Make sure you pick points that aren't too close to the edges of your region (or to the edge of the viewing window). If you enter points too close to the boundaries of a region, GraphFree may mistakenly think the region is already shaded and therefore not shade it “again.”

Curve shading examples


You can use the Asymptote plot type to enter the equations of multiple horizontal, vertical, and/or slant asymptotes all in one line. The lines will appear dashed as is conventional for asymptotes. (If you don’t want dashed lines, used the regular Function plot type instead, or the Implicit plot type for vertical asymptotes.)

Since this plot type is designed specifically for asymptotes, you need to write the equations of the asymptotes in the “normal” way, which means x = c, y = c, and y = mx + b. Alternate forms usually won’t work.

Asymptote examples

The Number Line

To plot on a number line, select Number Line as the grid type in the Axes & Grid panel. The plot panels will now contain the option for the Number Line plot instead of the other plot types.

To enter data in a number line plot, you may enter multiple points and/or intervals separated by semicolons. Just as in the piecewise plot, you may use interval notation or inequalities to express your intervals. In interval notation, you may use inf to express an infinite interval.

Number line example

Trouble Pasting a Graph?

First, Windows users will probably not be able to copy and paste graphs with transparent backgrounds. This is a limitation of Windows itself. Windows users will need to save images with transparent background to disk in order to insert them into other programs.

For images with the normal white background, the usual procedure—right-click, copy, then paste into your program—works exactly as expected in most programs. A few programs, however, need a little help to handle the pasting properly.

Microsoft Word can be one of those programs. If pasting into Word doesn’t seem to work, use the Paste Special command instead of the normal paste, and then select Device Independent Bitmap.

Fix pasting problem with Paste Special

Chopped Off at the Edge?

GraphFree is programmed to keep your graph from extending awkwardly beyond the edge of the grid and into the margins. Usually, that’s helpful. But once in a while you have a graph that just clips the edge of your viewing window, and that clipping effect looks a little off. Fortunately, you can compensate for it by extending the viewing window just a tiny bit.

Extend the viewing window a bit to fix clipped edges.