SciRep: GraphDraw Reviewed

As a newly qualified teacher of physics and IT, I was keen to involve my students of physics in the use of IT with their work, especially their exam coursework. It amazed me that written reports regularly failed to make use of the spell-check facility. However, this is a minor point - where they tended to fall down most was with the production of graphs using the computer.

To this end, I set about writing SciRep, which I now regularly issue to students from years 10 to 13. In doing so, I decided to test each of the regularly used pieces of software to produce graphs: spreadsheets such as Excel, Lotus123 and Resultz, and specialised software such as Insight2 and GraphDraw. The result of the test was quite clear: GraphDraw offers the most features, is cheap, stable and - importantly - the easiest to use.

The education bit

Most educationalists would recommend using spreadsheets for handling scientific data in schools. This is indeed an important application of IT, allowing students to experiment with the equations governing their data, and seeing the effects their changes make. However, this is normally where their usefulness ends. The final stage of producing graphs is where spreadsheets fail to do justice to the exercise. The expression "a picture says a thousand words" means a great deal here - no matter how good a student's data, the graph is all-important.

Those schools lucky enough to have Acorn computers can happily make use of a multitude of simple spreadsheets primarily designed for use in schools. What I recommend, though, is that after students have produced their data, they should export it into GraphDraw to add the ultimate finish to their project - and this last stage takes only a few minutes.

Back to GraphDraw

Now is probably a good time to point out that GraphDraw is but one program of a suite: ChartDraw, GraphDraw, MultiPlot, FNPlotter, 3DFNEdit, Surface & Text>Draw. These cover just about every aspect of graphing and charting for most users, not just scientists. GraphDraw is a small program - 168Kb - grabbing only 352Kb of memory, so it will happily work on older machines, as long as they use RISC OS 3.1 or more.

What GraphDraw does

The accompanying Impression manual is very well written, explaining the technical details of the software. Briefly, GraphDraw is capable of accepting data entry for X and Y, and then fitting these to:

Don't worry if you don't know what all of these choices mean - basically they allow you to choose the line that is drawn through a set of data points on a graph. In reality, you could just go through each option, and decide for yourself which fits the best.

Data entry

Data can be entered into GraphDraw in two ways: directly into a two-column table, or imported as a CSV file. The latter makes accepting data from spreadsheets or dataloggers easy, although direct data entry is simple enough. For the adventurous, and by default that includes A-level students, it is also able to handle error bars in Y.

A simple example

The following is from the original test, and represents a typical experiment that a year 9 pupil would do. A resistor is connected to a variable power supply, and an ammeter and voltmeter are used to measure current and potential difference respectively:

This was created quickly in !Draw, an often overlooked vector graphics program that accompanies every Acorn.

This experiment produces the following as a typical set of results, as entered in GraphDraw:

Note the !Help icon (bottom left) available to give support throughout GraphDraw, and the tick box for error bars.

From the data entry window the graph can be produced, and manipulated to best suit how we wish the results to be presented.

GraphDraw's data-entry window

The GraphDraw menu

At this stage, clicking <menu> brings up the following:

Starting at the top, 'Clear data' does just that, wiping the data entry window. Usefully, it does warn you by asking if you really want to do this!

'Save' saves a CSV-like data file, but in addition to the data, the title and axis labels of the graph are included. As always, <f3> calls up the standard save dialogue box.

'Save as' gives you three options: Text file of the raw data (as CSV), CSV and TabSV.

'Plot points' gives you four options on how you want your data plotted: Normal, Semilog X, Semilog Y, and Log-Log. Usefully, you can interchange between axis styles at any time. For GCSE studies, we need only concern ourselves with Normal, and only at A-level (and then rarely, these days) do we need to worry about logs.

'Join points' offers the same four options, but joins the points together, instead of producing a scatter graph.

The next four options, Best line, Parabola, Polynomial and Cubic spline, are the most powerful features of GraphDraw. They allow mathematically accurate plots of lines through your data points - essential tools for producing correct graphs.

The final three options, Transform X, Transform Y, Swap X and Y, allow rather useful manipulation of the data as entered. The two Transform options allow mathematical functions to be applied to the relevant data set: Log, LN, EXP, Reciprocal, Square, and Square root. Swap X and Y simply swaps corresponding values in X for Y. This is phenomenally useful if you have exported your data from a spreadsheet but had generated it the wrong way around - or if you entered the data by hand incorrectly.

Adaptable graphing

A Normal plot of the points produces the following graph:

This in itself is obviously not what we want. We must:

These are, of course, easily done! Two simple menus can yield stunning results. The first of these is the Graph Legend.

Notice the Text effects that are available for producing superscripts, etc. Standard special characters are supported, but this menu is customisable if you need more - or you can enter from !Chars, or similar.

This allows us to add all the text we require. For the bestfit line, we need to go back to the main menu and select Best line. This calls up an information window, with excellent statistical analysis of the bestfit line.

Notice that it automatically calculates gradient and intercepts! The correlation result is also useful - it tells you how well the line fits the data. Clicking <menu> over this window allows you to save the line of bestfit data, or print it, and allows you to choose whether you want the line added to the graph. Lastly, we may want the origin to be visible, and this feature is changed through the Graph Layout window.

This offers amazing attention to detail, with unparalleled ease of use.

Starting with the Axis pips, my personal preference is for them to Straddle the axes. Even their size is adjustable! Axis range allows the precise setting-up of the axes. Even left on Automatic, it produces a decent set of axes. Compare this to mega-programs, like Microsoft Excel, that frequently set entirely inappropriate axes!

Three more options switch on or off the Box outline, Axis pips and whether there is a grid - this can be useful. Offset label determines whether the axis labels are offset to the side, otherwise they default to the middle.

Et voilà!

Finally, we have a perfect graph in drawfile format which means that it can be scaled in DTP packages without any loss in quality. Ah, the joys of a well-designed OS!

Final annotated graph

And there's more!

So far, everything we have seen is more than adequate even for advanced graph users. However, there are many more features that I have not mentioned. Firstly, you may have noticed a subtle change in the style of the points on the graph.

You can specify the size of the points, and select from a range of different point types. Changing the style of a set of points is useful, especially when you want to add more than one set of data to a graph.

Analysing errors

At A-level and above, analysis of errors, or perhaps we should call them uncertainties, is very important. This is fully supported, and it even offers the quick route of percentages if precision is not your game.

Extended data-entry window

Enter a percentage and click 'Calc constant %' for the easiest uncertainties yet!

Alternatively, if you want to use uncertainties calculated from your experiment, these can be manually entered. Uncertainties can only be used for Y-axis data. Should your uncertainties be in X, then use the Swap X and Y option from the main menu.


GraphDraw cannot directly handle more than one set of data at a time. However, a second small application that accompanies it, !Multiplot, is able to receive directly data exported from GraphDraw. This is where the alterations to the data point style are useful. Nevertheless, Multiplot itself can alter the styles of points and lines - and then add a legend to the graph. I won't review it here, but suffice to say that it will do everything one could wish for!

Make it pretty!

Spreadsheets will tend to produce wonderfully colourful graphs that really make good use of today's colour printer technologies. It is just a shame that the graphs themselves are terrible. GraphDraw itself cannot produce coloured output - but the file format allows for infinitely complex editing.

Loading the graph into Draw, you can select lines or points individually, and change their colour; you can select titles, and alter fonts and sizes - you can do whatever you want!

I know it is disgusting, but it shows what you can get up to with Draw, if you really want to.


As I said at the start, this is one powerful beast of a graphing program, and it looks deceptively simple, thanks mainly to its well-designed user interface. The fact that it is shareware, and a mere £3 at that, is incredible - no science department or science student should be without this.

Download GraphDraw now

Please register if you find it useful. Only through registration will we ensure the future development of excellent software like this.

GraphDraw is available at http://avogadro.che.hw., and is also on the monthly disc.

Andrew Harmsworth,