views:

9059

answers:

16

Would anyone recommend a particular JavaScript charting library - specifically one that doesn't use flash at all?

+21  A: 

If you're using jQuery I've found flot to be very good - try out the examples to see if they suit your needs, but I've found them to do most of what I need for my current project.

Bittercoder
This is the same library Geoff Dalgas used to create the reputation graph here on StackOverflow. It truly is a nice bit of kit.
Charles Roper
My only real complaint about flot is that when rendering in IE it looks terrible at any zoom level other then 100% (i.e. all the lines/blocks don't scale together - this definitely a problem for those of us with high resolution displays).
Bittercoder
+16  A: 

It maybe not exactly what you are looking for, but
Google's Chart API is pretty cool and easy to use.

Jan Gressmann
This is a really good API.
Christian Davén
Just what I would have said
Keith
its not javascript
+1  A: 

Not a Javascript library but it may be a suitable alternative - check out Google Charts where you can generate charts by passing querystring data to their web service.

Luke Bennett
+1  A: 

For displaying large datasets, i would take a look at chronoscope ( http://timepedia.org/chronoscope/ ). It can be used as pure javascript, or integrated into a gwt app too.

Or, try the MIT simile timeline which could be made into a chart - http://simile.mit.edu/timeline/

or the final one, http://code.google.com/p/gchart/

Chii
A: 

My favourite (flot) has already been mentioned.

But be sure to investigate Ortho. It is excellent for tree charts and timelines.

Rui Vieira
+1  A: 

Take a look at Bluff. It's a JavaScript port of the Gruff graphing library for Ruby.

John Topley
A: 

Flotr is another, pure Javascript chart-library based on Prototype and inspired by Flot

Argelbargel
A: 

There is a lot of activity in the dojo charting library, and what is great I am using it inside an AIR application without problems too, pretty cool! See for example there http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/

Wolfram Kriesing
+1  A: 

Try PlotKit

Jason Bunting
+1  A: 

Check out Google Visualization API, which is kind of a generalization of the simpler Chart API

Mauricio Scheffer
+1  A: 

Protochart is all you need

Sir Psycho
+2  A: 

I'd recommend gRaphaël for pure JavaScript charting along with the pure JavaScript vector graphics library it's built on (Raphaël).

gRaphaël currently supports Firefox 3.0+, Safari 3.0+, Opera 9.5+ and Internet Explorer 6.0+.

Peter McGrattan
+10  A: 

Check out www.highcharts.com!

Highcharts is a charting library written in pure JavaScript, offering an easy way of adding interactive charts to your web site or web application. Highcharts currently supports line, spline, area, areaspline, column, bar, pie and scatter chart types.

Torstein Hønsi
Worth pointing out that this library is free for non-commercial use, but costs money for single-sites and multi-sites. It seems like a fairly reasonable price however.
Nick Spacek
seems a very professional library.
Elzo Valugi
+37  A: 

There is a growing number of Open Source and commercial solutions for pure JavaScript charting that do not require Flash. In this response I will only present Open Source options.

There are 2 main classes of JavaScript solutions for graphics that do not require Flash:

  • Canvas-based, rendered in IE using ExplorerCanvas that in turns relies on VML
  • SVG on standard-based browsers, rendered as VML in IE

There are pros and cons of both approaches but for a charting library I would recommend the later because it is well integrated with DOM, allowing to manipulate charts elements with the DOM, and most importantly setting DOM events. By contrast Canvas charting libraries must reinvent the DOM wheel to manage events. So unless you intend to build static graphs with no event handling, SVG/VML solutions should be better.

For SVG/VML solutions there are many options, including:

  • Dojox Charting, good if you use the Dojo toolkit already
  • Raphael-based solutions

Raphael is a very active, well maintained, and mature, open-source graphic library with very good cross-browser support including IE 6 to 8, Firefox, Opera, Safari, Chrome, and Konqueror. Raphael does not depend on any JavaScript framework and therefore can be used with Prototype, jQuery, Dojo, Mootools, etc...

There are a number of charting libraries based on Raphael, including (but not limited to):

  • gRaphael, an extension of the Raphael graphic library
  • Ico, with an intuitive API based on a single function call to create complex charts

Disclosure: I am the developer of one of the Ico forks on github (http://github.com/uiteoi/ico).

Jean Vincent
This answer needs some lovin', it is the best in the bunch giving some criteria on what to look for instead of just naming some project.
elventear
+1  A: 

I saw some mentions of http://www.jqplot.com/ on the web, looks alright but I haven't used it.

Fletch
I think so as well after doing some research. Right now it looks like one of the best free JS chart libraries available.
total