I'm building a web site that will include multiple graphs and printable reports. The graphs are pretty simple line graphs (perhaps with multiple data sources). Ideally, the graphic library would be able to do some smoothing of the data.<p>The reports are also fairly simple (lists of data with said graphs).<p>What do you think the best graphing and reporting libraries (for the planned usage) out there are?
For creating graphs you might want to look into SciPy's Matplotlib. It's a graphing library based on Matlab's stuff. Pretty good if you want those sort of graphs.<p>See: <a href="http://matplotlib.sourceforge.net/users/screenshots.html" rel="nofollow">http://matplotlib.sourceforge.net/users/screenshots.html</a><p>Here are instructions on hooking it into Django: <a href="http://www.scipy.org/Cookbook/Matplotlib/Django" rel="nofollow">http://www.scipy.org/Cookbook/Matplotlib/Django</a>
I am a fan of the Open Flash Chart 2 project:
<a href="http://teethgrinder.co.uk/open-flash-chart-2/" rel="nofollow">http://teethgrinder.co.uk/open-flash-chart-2/</a><p>As the name implies, they are flash charts, what except JSON data. There is a wonderful Python lib that makes it very easy to use OFC in a Pythonic way:
<a href="http://btbytes.github.com/pyofc2/" rel="nofollow">http://btbytes.github.com/pyofc2/</a>
Flot is great for generating graphs directly in the browser, saving the roundtrip for the image and allowing some interactivity: <a href="http://code.google.com/p/flot/" rel="nofollow">http://code.google.com/p/flot/</a><p>You can also generate simple Sparklines client-side too: <a href="http://omnipotent.net/jquery.sparkline/" rel="nofollow">http://omnipotent.net/jquery.sparkline/</a>
Pycha (PYthon CHArts) is pretty good. It use the Cairo vector graphics library.<p><a href="http://www.lorenzogil.com/projects/pycha/" rel="nofollow">http://www.lorenzogil.com/projects/pycha/</a>
The Cairo-powered <a href="http://www.aeracode.org/projects/graphication/" rel="nofollow">http://www.aeracode.org/projects/graphication/</a> is well worth a look - unfortunately the only documentation is examples at the moment.
Although not specific for Python (it is xml based), I find FusionCharts (<a href="http://www.fusioncharts.com/" rel="nofollow">http://www.fusioncharts.com/</a>) the best of the breed