Using Grapher to draw graphs

Grapher (available at is a web-based graph drawing package written in JavaScript* using VML* and XML. It is generally patterned in the tradition of MacDraw*. Like MacDraw and other programs for vector-based drawing that generally conform to its interface-design (Adobe® Illustrator®, Canvas, CorelDRAW®, Microsoft PowerPoint)*, a click on blank space adds to the drawing, while a click on an already drawn object selects that object. Transitions between the modes of adding a node, naming a node, adding a line, and moving a node are made by the software, rather than requiring an overt mode change command (as required by many extant graph drawing packages.)

Note: It only runs in Microsoft Internet Explorer (versions 5 and higher).

To draw a node, position your cursor where you want it, and click:

Before clicking

After clicking

After you have two or more nodes, you can connect pairs of nodes by clicking first on one (it turns pink to indicate that it has been selected), then on another.

To select a node, click on it.

To move a node, select it, then drag.

To name a node: select it, then type.

To delete a node: select it, then hit 'Delete.'

To delete a line: click on both nodes, again. (Clicking on two nodes in succession builds a line if it doesn't exist and removes it if it does.)

To select more than one node: select one or more; then click on a new node with the shift key down.

To deselect all nodes: press enter.

To deselect a single node: click on it with the shift key down.

For basic help: use the help menu (with the "grapher" icon).

What else can Grapher do?

What How
Select all nodes CTRL A
Copy a selected subgraph CTRL C
Paste a selected subgraph CTRL V
Extrude a selected subgraph (multiply by K2) CTRL Enter
Make a complete subgraph on selected nodes. Select nodes, then CTRL K
Expand selection to all neighbors: CTRL X
Hide the hint box:  Click on it.
Reselect previous selection CTRL Q
Form the complement of a selected subgraph  CTRL -
Display shortest path between two selected nodes CTRL T
Select displayed nodes (as in path or dominating set): CTRL D
Join several nodes to another Select several (using shift key) then click new node
Make a path with new nodes Click on blank space with shift key held down.
Save a file in XML format (incidence matrix) Use the file menu
Read a file in XML format (incidence matrix) Use the file menu.
You can only do this if you copy the code to your local machine.
Construct a random graph Use the file menu
Find a dominating set CTRL G


Making the wheel with seven spokes (W7):

Making the Peterson Graph:

*Legal Notes--  

See copyright notice: .

I believe the above use of screen shots from Microsoft Internet Explorer conforms to Microsoft Corporation's guidelines on the use of screenshots of its products as detailed at

Adobe® Illustrator® is a registered trademark of Adobe Systems, Inc. (See for permission and trademark guidelines.)

Deneba, Canvas, DenebaCAD, DenebaShare, CanvasViewer, ACDSee, PicaView, PowerCat, ACDX, Express and ACDNts are trademarks of ACD in the United States and other countries." (See for use of Permitted Use of ACD Systems ("ACD") Trademarks.)

CorelDRAW® is a registered trademarks of Corel Corporation and/or its subsidiaries in Canada, the United States and/or other countries. (See for phrasing of an attribution statement when using any Corel trademarks. 

MacDraw is a trademarks of Apple and/or Claris; PowerPoint and VML may be trademarks of  Microsoft. I tried looking up proper trademark citations for these products but was left a bit befuddled as to how these companies wish me to refer to their products. If you are a duly authorized representative of any of these trademark holders, please let me know and I will gladly refer to your products by whatever insignia your current legal staff deems appropriate.

Javascript may be a registered trademark of Sun Microsystems,  however uses the term frequently without trademark attribution in  messages generated by its underlying HTML. An excerpt: 

<!--hide from non-JavaScript browsers
document.write("Last Modified: "+document.lastModified);
// end hiding -->
<noscript class="tinytext"> javascript displays date of file obtained from webserver

[disclaimer --  Certain work found on these pages  (variously completed during the years 1970- 2004) was not done as a part of contractual obligations for any employer. Such work does not necessarily represent the opinions of employers past or present. For further disclaimers see]