, , , , , , , ,

I have a need to programmatically create flowcharts and organisational charts for use with an WordPress or Wiki site. This sort of diagram is called a “graph” (not be confused with “charts” in this context).

Graph software falls into the scientific or commercial category. Good scientific packages include JUNG, Prefuse, Piccolo2D. These are optimised for large datasets and do not easily support business diagramming.

Commercial graph software includes desktop products such as  Visio and Powerpoint (org charts) and web friendly products such as  Creately (online and plug-in) and Gliffy (online and plug-in).

For my applications the best solution is probably the open source and free packages JGraph and JGraphT. JGraph handles the graph display, layout and interaction and can be used both as a powerful desktop editor or as an applet. JGraphT can be used to define the graphs from the application’s data. The combination provides a free and powerful data driven graphing solution (see this example).

This is a Java applet based solution. If I later need to move to JavaScript + AJAX I can either migrate to the commercially supported AJAX version of JGraph called mxGraph or use the Yfiles for AJAX offering. These are relatively expensive at ~ 6,000 USD per developer licence.