SVG seems like the best option, although there is no current browser support for it. Adobe browser plugins for SVG are available, however. SVG Printing is also only in the specification stage now, so printing is problematic still. SVG is the way to go overall, though.
Reportlab generates PDF documents. They can be generated dynamically, and this is probably the solution with the highest degree of control. However, the API takes a while to get used to.
Chartdir, a non-free but very nice charting program.
nsgd Implements the GD library, as toes tgdcharts?
nschartdir, using ChartDirector (http://www.crystalballinc.com/vlad/software)
FusionCharts (http://www.infosoftglobal.com)
PlPlot (http://sourceforge.net/projects/plplot)
GNUPlot (http://www.gnuplot.info)
tclkit/starkits:
* about starkits: http://www.equi4.com/starkit.html
* about tclkit: http://www.equi4.com/tclkit.html
* the starkit archive: http://mini.net/sdarchive
jpgraph - http://www.jpgraph.org
jchart
http://www.visualmining.com/ Visual Mining
http://www.corda.com/ Corda
Eclipse (http://www.eclipse.org). Its often thought of as Java-centric, but its supposed to be language-neutral, and they have several projects to enable it to support other languages (http://www.eclipse.org/tools/index.html) using its plug-in architecture. They also just came out with a UML toolkit that you might be able to leverage (http://www.eclipse.org/uml2/)
Fusion Charts - http://www.infosoftglobal.com/FusionCharts/. Its not open-source or even free
but at only $99 for an unlimited license its very reasonable. The results are very good.
GForge - http://www.gforge.org
Dia - http://www.gnome.org/projects/dia/
GraphViz
Grappa
http://openacs.org/forums/message-view?message_id=44869
http://openacs.org/forums/message-view?message_id=83572
http://openacs.org/forums/message-view?message_id=26291
http://openacs.org/forums/message-view?message_id=192255