Several of you have asked us about the graphing and visualization package we use to generate graphs at Swivel. Here's a bit of history about how we chose our graphing package.
In our quest for the right graphing package to use, we:
- Started with Gruff, a Ruby graphing library. It is well-designed, creates good-looking graphs and is easy to use. We realized though that Gruff at the time wouldn't scale as broadly as we wanted. Gruff is fantastic and would be our first choice for smaller projects.
- Prototyped calling R, the free statistical package, via the command line interface (it has no formal API). R is a great tool and a lot of fun to work with. However, its presentation layer wasn't customizable enough for our needs, and it was also fairly slow, at least for the mass audience site we were building.
- Tried GNUplot, a package a lot of scientists are using, and rejected it as well because of limited presentation options, although it is very fast.
- Finally, we fell in love with Ploticus. It's a C package with an API. Brian wrote a Ruby API wrapper for it, rploticus, and Tao came up with a cool way to generate Ploticus templates in Ruby. We've been happy with what Ploticus gives us, it's got tons of options and graph types and is a very rich graphing package, and it's fast. You can tell we exposed only a small fraction of the various visualization options available in Ploticus, and as time goes by we'll be making better use of it and exposing more ways to see data.
If you truly want to geek out on visualizations, you can get an explosion of different ways to visualize data at IBM's Many Eyes, a project by the Visual Communication Lab, which is part of the Collaborative User Experience research group at IBM's Watson Research Center. It's like Tufte on steroids. Their visualizations remind us of another graphing package we investigated called prefuse.
If you want any help with Ploticus or want to talk about other graphing packages drop us an email, we love to work on this stuff.

Swivel Home
Great stuff, keep up the good work!
Posted by: Ray | January 23, 2007 at 07:39 PM
Thanks, Ray.
Posted by: Brian Mulloy | January 23, 2007 at 07:54 PM
I was just posting a comment about this exact issue on Element List. Glad to see you're on top of it. Good luck and put me on your media list if you have one.
Posted by: Jackie | January 23, 2007 at 08:44 PM
Jackie, a media list — wouldn't that be kinda retro-meta? :-) Here's the RSS feed to our blog: http://blog.swivel.com/weblog/index.rdf
Posted by: Dmitry | January 23, 2007 at 08:56 PM
Hi
Are there any of these packages which are free? Also, most of your data doesn't specify which country its from, so it's hard to use any of it. Am I missing something?
Posted by: Anton | January 24, 2007 at 06:02 AM
Has anyone been able to get RPloticus to work on Windows? I've been wrestling with it for the last few hours with no luck (linker errors at the moment). I'd appreciate any pointers. Thanks!
Posted by: Richard Lawrence | January 27, 2007 at 08:48 PM
Anton, all of the packages we listed are free, open source packages.
Posted by: Brian Mulloy | February 07, 2007 at 06:20 PM
Richard:
RPloticus currently do not work on windows. we currently call ploticus on windows in this way (note that we have ploticus binary file in rails_root/vendor/ploticus/win32/bin):
ploticus_svg_command = %{#{RAILS_ROOT}/vendor/ploticus/#{platform}/bin/pl -scriptlinelen 10000 -varmaxlen 3000 -stdin -svg -o #{tmp_svg_name} -pagesize #{x_max},#{y_max} -crop 0,0,#{x_max},#{y_max}}
ploticus_pipe = IO.popen(ploticus_svg_command, "w")
ploticus_pipe.puts script
ploticus_pipe.close_write
Posted by: Tao Ge | February 07, 2007 at 06:25 PM
I'm not able to get test/test.rb to work on my Mac. Make went fine, and I installed the bundle, but then get this:
[Ned@NedsMacBook rploticus]$ ruby test/test.rb
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/rploticus.bundle: dlopen(/opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/rploticus.bundle, 9): Symbol not found: _PLS (LoadError)
Referenced from: /opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/rploticus.bundle
Expected in: flat namespace
- /opt/local/lib/ruby/site_ruby/1.8/i686-darwin9/rploticus.bundle
from test/test.rb:1
Posted by: Ned Konz | April 08, 2009 at 05:47 AM