views:

1974

answers:

6

I want to Embed a chart in a Web Application developed using django.

I have come across Google charts API, ReportLab, PyChart, MatPlotLib and ChartDirector

I want to do it in the server side rather than send the AJAX request to Google chart APIs, as I also want to embed the chart into the PDF.

Which is the best option to use, and what are the relative merits and demerits of one over the other.

+3  A: 

Another choice is CairoPlot.

We picked matplotlib over the others for some serious graphing inside one of our django apps, primarily because it was the only one that gave us exactly the kind of control we needed.

Performance generating PNG's was fine for us but... it was a highly specialized app with less than 10 logins a day.

Van Gale
Hi, I'm the one maintaning CairoPlot. Could you define what CairoPlot lacked for you to use it? Maybe I can fix it so it becomes better for Django apps.
Rodrigo
@Rodrigo: If I recall with CairoPlot the problem was simply we didn't discover CairoPlot until after we already had some charts coded using matplotlib. I'll check with my team members though to see if there was something I'm forgetting. Our project was pre-1.1 as well, so that might be problem.
Van Gale
@Van Gale: Nice. If you try to use it nowadays, you should use the trunk version as we haven't released the 1.2 yet.
Rodrigo
+2  A: 

Open Flash Chart 2

http://teethgrinder.co.uk/open-flash-chart-2/

python library http://btbytes.github.com/pyofc2/

kybi

kybi
+4  A: 

Well, I'm involved in an open source project, Djime, that uses OpenFlashChart 2.

As you can see from our code, generating the JSON-data that OFC uses is a bit complex, but the output is very nice and user friendly, since you can add tooltips, etc. to the different elements.

mikl
I'm not fond of Flash, so my +1 is for pointing to your project which I hadn't seen before, and for it looking like a serious project as opposed to a toy. Thanks!
Van Gale
A: 

I have used FusionCharts Free with Django.

Its flash based, open source, multi-licensed and it's well documented. It's ActionScript 1, but AS version wasn't really a criteria for me, though it could be for others.

chefsmart
+1  A: 

One package I've wanted to try is graphite. It's a graphing server / platform built with Django. It's specialized for "numeric time-series data" though, like stock prices or bandwidth utilization. If that fits your need I would check it out. Here are some screenshots:

http://graphite.wikidot.com/screen-shots

lost-theory
A: 

I like client side charts because you can get full page plotting.

A good options seems to be Jquery Flot : http://code.google.com/p/flot/ which can load JSON data. However, you won't get pdf support.

emel