19
$\begingroup$

I'm interested in learning how to create the type of visualizations you see at http://flowingdata.com and informationisbeautiful. EDIT: Meaning, visualizations that are interesting in of themselves -- kinda like the NY Times graphics, as opposed to a quick something for a report.

What kinds of tools are used to create these -- is it mostly a lot of Adobe Illustrator/Photoshop? What are good resources (books, websites, etc.) to learn how to use these tools for data visualization in particular?

I know what I want visualizations to look like (and I'm familiar with design principles, e.g., from Tufte's books), but I have no idea how to create them.

$\endgroup$

10 Answers 10

20
$\begingroup$

Flowing data regularly discusses the tools that he uses. See, for instance:

He also shows in great detail how he makes graphics on occasion, such as:

There are also other questions on this site:

IMO, try:

  1. R and ggplot2: this is a good introductory video, but the ggplot2 website has lots of resources.
  2. Processing: plenty of good tutorials on the homepage.
  3. Protovis: also a plethora of great examples on the homepage.

You can use Adobe afterwards to clean these up.

You can also look at the R webvis package, although it isn't as complete as ggplot2. From R, you can run this command to see the Playfair's Wheat example:

install.packages("webvis")
library(webvis)
demo("playfairs.wheat")

Lastly, my favorite commercial applications for interactive visualization are:

$\endgroup$
  • 1
    $\begingroup$ Awesome, great links! I already use R and ggplot2, but the visualizations from there seem more of the "graphics for a report"-variety, than of the "eye candy/visualization interesting in of itself"-variety I'm looking for. (ggplot2 is super beautiful, but it's not really meant to allow unlimited creativity.) Am I wrong?, or do you sometimes use R/ggplot2 as an input into another visualization tool? $\endgroup$ – raegtin Aug 28 '10 at 4:28
5
$\begingroup$

Already mentioned processing has a nice set of books available. See: 1, 2, 3, 4, 5, 6, 7

You will find lots of stuff on the web to help you start with R. As next step then ggplot2 has excellent web documentation. I also found Hadley's book very helpful.

Python might be another way to go. Especially with tools like:

All projects are well documented on the web. You might also consider peeking into some books.

Lastly, Graphics of Large Datasets book could be also some help.

| cite | improve this answer | |
$\endgroup$
  • $\begingroup$ igraph works in R also; for 3D openGL accelerated vis in R, use rgl & misc3d packages. $\endgroup$ – user88 Aug 28 '10 at 9:41
  • $\begingroup$ Also matplotlib plots are ugly; they may be nice for a long-years gnuplot user. $\endgroup$ – user88 Aug 31 '10 at 14:23
2
$\begingroup$

You'll spend a lot of time getting up to speed with R.

RapidMiner is free and open source and graphical, and has plenty of good visualizations, and you can export them.

If you have money to spare, or are a university staff/student then JMP is also very freaking nice. It can make some very pretty graphs, very very easily. Can export to flash or PNG or PDF or what have you.

| cite | improve this answer | |
$\endgroup$
  • 5
    $\begingroup$ 1. IMHO time spent with R is well invested if you plan to do anything serious. 2. Also consider KNIME knime.org as RapidMiner alternative. $\endgroup$ – radek Aug 28 '10 at 0:01
  • $\begingroup$ (+1)@radek. I am also a rapidminer fan, but in my opinion it is not flexible enough for sophisticated visualizations. $\endgroup$ – steffen Feb 16 '11 at 13:39
  • $\begingroup$ If you have any coding experience, then you won't really need more than a day or so to get up to speed with R. It's pretty straight forward, as far as languages go, and there are some excellent online tutorials. $\endgroup$ – naught101 May 13 '12 at 23:51
1
$\begingroup$

Another good alternative is the protovis library http://vis.stanford.edu/protovis/

It is a very well crafted JavaScript library that can create some beautiful visualizations if you have the time and ability to write the modest amount of JavaScript code needed.

I also highly recommend Tableau http://www.tableausoftware.com. It is great for rapidly exploring data sets and creating many different visualizations.

Both products have roots at the Stanford Visualization Group.

$\endgroup$
1
$\begingroup$

Many excellent answers have been given here, and the languages/libraries you choose to learn will be dependent on the type of visualization you would like to do.

However, if you use Python regularly then I highly recommend seaborn. It is very sophisticated when it comes to statistical data visualization, but also looks quite sophisticated from a presentation standpoint.

Let's take an example. Suppose you are trying to plot electricity consumption for a commercial building by month. A simple line graph could be generated in matplotlib for this purpose.

However, if we wanted to make the visualization more sophisticated and informative, we could generate a heatmap with seaborn:

heatmap

A heatmap is just one example. Some other common uses with seaborn include:

  • KDE plots
  • Swarm plots
  • Violin plots

The idea behind seaborn is to present data in a more intuitive way than would be possible by using simpler charts, e.g. line, bar, pie, etc.

If it is of interest to you - you can find more information on seaborn here: https://seaborn.pydata.org/

$\endgroup$
0
$\begingroup$

Here is a good set of links with resources for starting to learn:

| cite | improve this answer | |
$\endgroup$
0
$\begingroup$

R is great, but it is not that R is difficult to learn it's that the documentation is impossible to search for any other name like Rq would be great. So when you got a problem, searching for a solution is a nightmare, and the documentation is not great either. Matlab or Octave will be great. And to get those plots in R or Matlab would be very very tedious.

IMHO post processing visuals is the best route. A lot of them from flowing data are put through Adobe Illustrator or Gimp. It is faster. Once you get the structure of the plot, then change details in an editor. Using R as an editor does not give you the flexibility you want. You will find yourself searching for new packages all the time.

$\endgroup$
  • $\begingroup$ R; function?? - R has inbuilt help. you can also usually search for "cran" to find R stuff, and I find that most major search engines can handle the single letter well enough. $\endgroup$ – naught101 May 13 '12 at 23:52
0
$\begingroup$

Here's a YouTube tutorial on D3.js that teaches the basics of HTML, SVG, CSS and JavaScript, as well as how to load data and create a bar chart, line chart, and scatter plot with D3.js.

Video thumbnail

| cite | improve this answer | |
$\endgroup$
0
$\begingroup$

here's a practical resource to get you started with d3. It includes a demo code and a step-by-step example on how to load, organize and visualize a dataset in d3.

https://www.edx.org/course/web-app-development-with-the-power-of-nodejs

| cite | improve this answer | |
$\endgroup$
-3
$\begingroup$

There are infinite resources, but you can narrow them down based on how you want your data to be transformed, how many data sources you're dealing with, how they need to be shared, etc.

Here's a guide on how to pick the right resource that might help point you in the right direction.

| cite | improve this answer | |
$\endgroup$
  • 1
    $\begingroup$ As you're associated with this group, please declare an interest. Link only answers aren't the most helpful. The advice at stats.stackexchange.com/help/promotion may apply. $\endgroup$ – Nick Cox Feb 26 '19 at 18:32

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