Jim Diamond's Graph Drawing Page

ring of Petersen graphs

The purpose of this web site is to provide convenient access to some tools developed at Acadia to assist in the construction of (hopefully beautiful) graph drawings.  (Note that this is for drawings of "graph theoretic" graphs, not "X-Y plot" graphs.)  These tools are evolutionary steps in the development of a powerful, easy-to-learn, easy-to-use graph drawing creation tool.  As an example, the graph above was created in about two minutes using the "Graphic" tool described below.  (Not that you likely want to draw that particular graph, but it gives you an idea of what be accomplished in a small amount of time.)

Note that these graph drawing tools are not designed to take an abstract specification of a graph (such as a list of edges) and produce a drawing.  Rather, these tools are for people who have a drawing in mind, and are looking for a tool to easily and quickly create that drawing.

As of November 2020 (and for some time before that), the tool under current development is "Graphic".  The other tool described here, "Grapha", is no longer under development, but might be of interest to certain people, as described below.


Graphic is a tool initially developed by Rachel Bood in 2016 as part of her honours thesis work.  Graphic is written in C++/Qt5; therefore you must "install" an executable program on your computer before you can run the tool.  (Grapha, described below, runs in web browsers and does not need to be installed.)

Graphic allows you to save your graph drawings as a .grphc file, which can be read in by Graphic at a later time (or immediately after saving the drawing, as is sometimes useful).  All such saved graph files form a "library" of drawings; each graph in the library can be recalled later, in order to use the final drawing as is, or to use the drawing as a "unit" to create more complex graph drawings.  Graphic also allows sers to save the graph drawing in a variety of image formats (such as PNG).  Graphic also allows the graph information to be saved in a number of text formats (e.g., SVG, and edge lists, where the latter might be useful as input to programs which operate on textual descriptions of graphs).  In particular, input for TeX/LaTeX/ConTeXt documents is created by choosing the TikZ option when saving a graph drawing.  (Currently, the output format is specifically for LaTeX; plain TeX and ConTeXt users will have to do a small bit of editing, although this may change in the future.)

There are two increasingly different versions of the program available:
– Bood's original version, and
– my now (November 2020) considerably enhanced version.  (This version has had major contributions from Ian Cathcart.)

Executable programs (of my modified version of Graphic) for Linux can be downloaded from here:
– a version compiled for Slackware-64 14.2 with Qt5-5.15.0, can be found here;
– a version compiled for Slackware-64 current with Qt5-5.15.1, can be found here
One (or maybe even both) of these versions may work with no further effort on many other (relatively recent) 64-bit versions of Linux (although you may need to give the downloaded file execute permissions, depending on your browser's behaviour). 

.dmg file compiled on macOS Catalina (specifically, 10.15.7) can be downloaded here

For people with systems not compatible with any of the above pre-compiled programs, or for those who like to compile things themselves, the source code for Bood's version can be found here, and the source code for my considerably updated version can be found here.  (Github wizards may wish to clone the repository; others might prefer to download a .zip file via the green "Code" button towards the right side of the page.)  These are known to compile without trouble under various versions of both Linux and macOS, and with some effort under MS-windows.  At time of writing the difficulty of compiling for other operating systems is not known.  Instructions for compiling the enhanced version under Linux, macOS and MS-windows can be found in the INSTALL file found here

Although Graphic is designed to be easy to learn and (mostly or wholly) self-explanatory, a user guide is available here.  New Graphic users might want to have the guide at hand when trying out Graphic.


Grapha is a tool written by Nick Wetmore in 2014 as part of his honours thesis work.  It was the first step in the exploration of tools to create graph drawings, and Graphic owes some of its ideas to work done during the creation of Grapha.  Grapha is written in Javascript and should run on any relatively modern browser (including browsers in tablets and smart phones, although small screens make its use more difficult).  While there is no documentation (in the usual sense) for Grapha, it was designed to be easy to learn and easy to use.  A description of Grapha can be found in Wetmore's honours thesis, which can be downloaded here

Note that the tool will allow you to save a "library" of any graphs you create (on your computer), as well as to export the graph drawings in a variety of formats.  If you use this tool again in the future after saving a graph library, you can load the library and use your previously-created graph drawings to help you create more graph drawings. 

If you would like to try this tool out, click here.  Note that a benefit of this tool is that no installation is required, and so it may be useful to people who have modest graph drawing needs or who need graph drawings so rarely that the effort involved in installing Graphic is not justified.

The library formats of Grapha and Graphic are not compatible. 


Comments, suggestions, and/or contributions to Graphic are welcome.  (Grapha is not currently on github (or similar) and is not currently being further developed.)  Github wizards: feel free to proceed via the usual fork and pull request strategy.  Alternatively, e-mail Jim.Diamond@AcadiaU.ca; I can't promise immediate response, but normally I will respond to e-mail reasonably quickly.

 

 

 

 

Valid CSS! Valid HTML 4.01!