Take the 2-minute tour ×
Cross Validated is a question and answer site for people interested in statistics, machine learning, data analysis, data mining, and data visualization. It's 100% free, no registration required.

Recently I came across Tableau and tried to visualize the data from database and csv file. The user iterface enables the user to visualize time and spatial data and create plots in an instant. Such tool is really useful as it enables to observe the data graphically without writing the code.

As there are many data sources from which I have to retrieve and visualize the data it would be very useful to have a tool which enabled to generate charts by simply dragging columns on axes and additionally modify the visualization with dragging the column names as well.

Does anyone know any free or open source software of that kind?

share|improve this question
1  
By database, do you mean SQL, Postgres, Mongo-like structures? (Induction for Mac has such functionalities.) Or are you after any program that accept CSV files and allows to drag and drop columns onto graphical templates, or à la GGobi? –  chl Nov 22 '12 at 17:22

5 Answers 5

up vote 16 down vote accepted

I've never tried it, but there's an open source desktop / browser-based visualisation suite called WEAVE (short for Web-based Analysis and Visualization Environment). Like Tableau, it's intended to let you explore data through an interactive click-based interface. Unlike Tableau, it's open source: you can download the source code and install your own version on your own machine which can be as private or as public as you want it to be. Don't expect anything nearly as slick and user-friendly as Tableau, but it looks like an interesting, powerful project for someone prepared to put the time in to learning to use it.

enter image description here enter image description here enter image description here


Or, you can look into rolling your own. There are some really good open source javacript tools for supporting programming data visualisation in a browser. If you don't mind coding some Javascript and some kind of server-side layer to serve up the data, give these a try:

  • Miso Dataset for getting, processing, managing and cleaning the data on the client side in Javascript (includes a CSV parser)
  • D3 for interactive visualisations in SVG (works in every browser except IE8 and earlier and old (v1,v2) Android phones).
  • gRaphael for interactive cross-browser standard charts
  • Raphael if you need SVG output to work in Internet Explorer 6, 7, and 8.

If you're interested in the web programming option, here's a slightly more detailed write-up I wrote on Raphael and D3 for stackoverflow.


There are also some free (not open source) online datavis suites worth mentioning (probably not suitable for direct DB connection but worth a look):

  • Raw by Density Design - blog introduction - (hit "Choose a data sample" to try it out) - mostly copy and paste based, not sure if it has an API that can connect to a database but good for trying things out quickly.
  • Tableau Public - a free-to-use online version of Tableau. The catch is, the data you enter into it and any visualisations you create must be publicly available.

And something completely different: if you have a quality server lying around and you happen to want to make awesome google-maps style tile-based 'slippy' maps using open source tech (probably not what you're looking for - but it's possible!), check out MapBox TileMill. Have a look through the gallery of examples on their home page - some of them are truly stunning. See also related project Modest Maps, an open source Javascript library for interacting with maps developed by Stamen Design (a really highly rated agency specialising in interactive maps). It's considered to be an improvement on the more established OpenLayers. All open source.

enter image description here


WEAVE is the best GUI-based open-source tool I know of for personal visual analysis.

The other tools listed are top of the range tools for online publishing of visualisations (for example, D3 is used by and developed by the award-winning NY Times graphics team), and are more often used for visualisation in the context of public-facing communications than exploratory analysis, but they can be used for analysis too.

share|improve this answer

RapidMiner has good visualisations:

http://rapid-i.com/component/option,com_myblog/show,New-Plotters-for-RapidMiner.html/Itemid,172/lang,en/

And of course, there is R + ggplot2, using a web interface or a graphical frontend:

http://labs.dataspora.com/ggplot2/

http://www.deducer.org/pmwiki/index.php?n=Main.PlotBuilder

share|improve this answer
    
R+Mondrian or ggobi is also nice –  wdkrnls Nov 23 '12 at 13:15

Point and click interfaces seem easier, but in the long run you will benifit by learing "writing the code".

One advantage of script based systems over point, click, drag interfaces is the audit trail/history (some GUIs do have a history, but they generally are not as easy to work with as a saved script). If you write some code to create your graph and save it then it is always easy to rerun it, or to make some small edits then rerun, it is not always easy to remember the set of clicks and drags used to create a prior graph.

Scripts will also be much quicker for large numbers of plots. It will take a little more time to write the code for the first plot, but adding only a couple of lines and some small modifications can let you loop through 100's or more variables with little additional effort where you need to do the same set of clicks and drags over and over again for each plot.

Many of the script based plotting tools do have GUIs that allow you to use point and click to get started, but help you learn the code and transition to the more powerful methods.

I recommend R which is free and open source and does have some GUIs available (Rcmdr, jgr, rstudio, etc.) as a good option.

share|improve this answer
2  
While script-based tools will help you generate the same chart repeatedly with different data sources, interactive tools are much better for exploration and discovery in a new dataset. When posed with a question, you simply click a button or two to change axis, color scales, clusterings, etc. instead of writing the code to do it. This is a much lower cost, and an undo stack or exploration history view will let you backtrack if you make any mistakes. –  edallme Feb 3 '13 at 18:36
    
@edallme, I disagree. What you say may be true for people who know the basics of a GUI interface and don't know scripting tools, but I think this is an argument for learning the scripting tools. In my case I expect that hitting the up arrow, the left arrow, and typing something like "col.axis='blue'" will take less time than moving my hand to the mouse, clicking on a plot, and searching through the options. For someone starting out a GUI can give a feel for what is possible to change, but I prefer those that show the code so they learn the better approach. –  Greg Snow Feb 4 '13 at 22:46
    
I like Stata's approach of a GUI to choose options, then spitting out code you can reuse when you hit 'Ok'. It is helpful to have scripting available when you need to automate things. But exploratory search is much more than changing chart parameters once or twice. In good interactive tools users can change the columns used for a chart with the click of a button or an arrow key, filter to subsets of the data with a slider or drag-and-drop interaction, and have brushing between charts showing connected data points. Moreover, each change is rendered in less than 100ms and doesn't penalize users. –  edallme Feb 5 '13 at 15:59

Maybe http://www-958.ibm.com/software/data/cognos/manyeyes/ is what you want. Beware that the data you upload is public though. Edit: Sorry, I see you asked for open source. My bad.

share|improve this answer

There is also a young program for (automated) reading, filter, process, interpolate and plot n-dimensional values from different sources (like libreOffice- or csv-files) and variable size: diaGrabber.

You have to use some simple python-commands to create a case. After this you can manipulate the graphical output in an interactive GUI.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.