There are many existing graphing solutions. We have found that these packages do not meet all of the goals set forth at the start of this paper. Some examples of similar graphing packages are Snow, GnuPlot, Mathematica and Matlab, SigmaPlot, existing python plot packages, etc.
There are also many other approaches to graphing in Python; many of these serve specialized purposes or platforms. A few general-purpose packages will be mentioned here.
Snow [1] is a 2D graphics API based on a custom C module; its author (David Ascher) has been assisting with the design of Graphite. GnuPlot is an open-source plotting package, written in C and ported to many platforms. The Python interface, however, depends on pipes and so is not fully portable; it also requires the use of a special command language. Mathematica, Matlab, and SigmaPlot are commercial packages which do extensive 2D and 3D graphics, but are not well integrated with Python.
Each of these packages has a sizable user base, and may be perfectly suitable for some applications. Graphite differs from them primarily in two ways. First, by generating output with PIDDLE, it gains both true platform independence and a wide variety of output types, from GIF to PDF to interactive windowing systems. Second, because it is written from scratch entirely in Python, there is no second language to learn; all graph elements are ordinary Python constructs and manipulated in standard Python. This may decrease learning time, and increase comfort, for users who are already using Python for other purposes.