Actually, this is a perfect time to ask: I've been trying to find the best FOSS charting tool for a (for-profit) RoR app I'm building. Google-visualr seems to be the easiest to use: https://github.com/winston/google_visualr
Not really a tip from the RoR side of things, but I do have experience with the Google Chart Tools.
Its a decent library, but keep in mind that Google is in control of the source code. I'd personally look for something that uses a library you can host yourself.
This is the only graphing library that seems to believe that the challenge is "display lots and lots of data quickly in a legible fashion" as opposed to "take small amounts of data and render it in a way the user will consider pretty". I love dygraphs ;P.
I'm not sure how to get excited by this. Seems weird that customers had to wait until version 3 to get a bubble chart and some basic animation events (though it seems you are still on your own to figure out the transitions). After using d3, charts built like this just feel so limiting and a bit old fashioned - I think it is a testament to the amazing work that Mike Bostock has done.
As a customer, having few fancy charts isn't that important. But the ease with which allows customizations and the support it provides is more important. D3.js, GoogleCharts, Flotr2, etc. are too complex to customize. When it comes to building a product and not care about how to get your charts done, Highcharts is the best solution.
I think this is a common misconception. Once you wrap your head around d3, building charts is just about as easy as figuring out the required configuration for a Highcharts chart (even complex charts are generally only 30 lines of code). If you really don't care how it is done, there are solutions like nvd3.js that have created prepackaged charts. Based on the extremely limited customizations available and poor performance characteristics, along with the pricing model, I don't think I can agree that Highcharts is ever the best solution.
Key point here. Highcharts' customers are companies and website builders that don't have, get, or take the time to wrap their heads around D3, they just need to chuck a graph or two on their site(s), then move on to the next thing. It's not idealistic, but it's the reality.
I'm personally surprised there's not a lot more commercial JS libraries like Highcharts out there, seems to me there's a big market for those.
I'm in the not-enough-time-to-understand-d3 camp, but maybe that will change. In the meantime, I've found it easy to get something going fast with the highcharts tools.
I just spent the past two months building an advanced dashboard revolving around complicated charts. After looking at both high charts and d3, it became clear that d3 was the better solution, as it allowed an order of magnitude of increased flexibility.
Not to mention that (at least compared to the previous release of HighCharts) D3's performance is just so much better. Graphing tens of thousands of data points causes my browser to freeze up for 10+ seconds at a time with HighCharts, while a D3-based graph visualization of the same data loads in under a second.
It doesn't appear to have gotten much better in this version. I took a peek at the new bubble chart (via their link to a jsFiddle) and it took about 7 seconds to render. I'm drawing similar charts using d3 with 800 data points that render in under 300 ms.
That's 7 seconds waiting for JSFiddle, not Highcharts. In my Chrome browser, Highcharts renders 800 bubbles in under 200 ms: http://jsfiddle.net/highcharts/hAyzq/
The last thing the world needs is more bubble charts. I'd like once to see one in a true scientific paper. Bubble charts are just like dowsing rods. That's why marketers and managers love them. They'll show you whatever you're looking for.
jtablesession::Store Failed
DB function failed with error number 1226
User 'highcharts' has exceeded the 'max_updates' resource (current value: 36000) SQL=INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` ) VALUES ( '8cre30vqdh3ip8hh0iebn7buq5','1361463112','','0','1','0' )
Googling jos_session reveals the site is built using Joomla..
Should probably consider doing something about this.
High charts is AMAZING! I'm a strong supporter of not building things like charts yourself, and have been recently astonished by the amount of custom styling you can apply to Highcharts without modifying any of their code, and keeping your code perfectly clean.
Cant tell you how much i love this product, leaves every charting package i've ever touched in the dust. Keep up the great work!
One price for a "web page" that's not a "web application" and then pricing per developer? Just ridiculous. Why not add a per CPU surcharge while we're at it?
Looking closer, the "Learn More" link under Single Developer says "Allow Highcharts to be used with an unlimited number of SaaS projects, web applications, intranets, and websites for you or your customers."
Although the "directly or indirectly" is annoying: 1 developer working on charting integration and 5 working on e.g. database administration? Need a 10 seats license.
They basically want you to pay based on team size. However, I'm not sure how this sort of licensing would be enforceable though. I know of of multiple companies who use HC for free for commercial purposes on the basis that all the charts are behind logins and feel that's ok. If they had a more straightforward pricing scheme I have no doubt most would just pony up the cash.
The other problem with per developer is maintaining compliance. So every time I hire I have to remember I need to get another licence for this on any other products I have that uses this type of stupid boxed-software model. It adds unnecessary overhead that isn't justified for such a small piece of component software. This isn't Visual Studio we are talking about here.
Honestly their pricing is the only reason I'm not using them.
I don't even know what pricing per developer means. They should rethink this, because I know lots of people who ignore it because it doesn't make sense for their situation.
Agreed. This is a confusing and very strange way to do pricing. It shouldn't matter what the size of my team is. I should just be able to buy a license for my entire website/application.
No you licence a "page" to use it. A "web application" is not covered by the licence. The single website licence is nearly useless:
> For use on a simple webpage that is not considered a web application. A web application is a website that has customer specific data or charges for its use. This requires a Developer license.
Google Charts is very usable and they look really good IMHO - and it's open source. I couldn't afford HighCharts license AND they never responded to me when we tried to email them about getting a "deal" as a startup.
Very nice. Do you know how they achieve the 1-pixel lines on the chart? I'm supposing they use SVG, like RaphaelJS. This was a little PITA for me in RaphaelJS.
What about the other side of this, generating the series data?
Are there many - or any! - general-purpose libraries one can point at a database, choose or write an SQL statement, and it will take care of time and date ranges for you?
For my purposes, I'll stick with Flot since its free of licensing fees (at least as far as I can tell). But if I had a budget to work with, Highcharts is appealing.
I wish it was more affordable too. I believe it was only $100 a couple of years ago. That was almost OK as a price to try it out, but the current pricing puts it out of my range for now.
It's lowest price is $80 but doesn't include a developer license (another $360) and only can be used on a "simple webpage" not a web application. The last part is confusing. What exatcly does it mean by "simple webpage"? Does it mean a static web page? If I'm building a ecommerce website, I guess I can't use it?
They seem to have a very broken presentation of the funnel, though. The example looks more like they've squashed different area sizes into a fixed funnel shape, rather than showing how much the funnel narrows at each step so you can immediately see where you're losing or converting a high proportion of prospects.
I'm actually writing a php code generator to generate an api wrapper for highcharts, and I was really curious about this as well. The interface looks homebrew, but I'm just not sure...
jtablesession::Store Failed
DB function failed with error number 1226
User 'highcharts' has exceeded the 'max_updates' resource (current value: 36000) SQL=INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` ) VALUES ( '','1361463235','','0','1','0' )
jtablesession::Store Failed
DB function failed with error number 1226
User 'highcharts' has exceeded the 'max_updates' resource (current value: 36000) SQL=INSERT INTO `jos_session` ( `session_id`,`time`,`username`,`gid`,`guest`,`client_id` ) VALUES ( 'mbh4nviu3hiahjlihcodeib9c0','1361463774','','0','1','0' )
Which are FOSS.