Recommendations for making Venn diagrams?
March 10, 2009 8:50 AM   Subscribe

Does anyone have software recommendations for making Venn diagrams? Especially complicated ones?

Hi all, I have a set of data that I want to make a Venn diagram for, and I was hoping that you might have software recommendations for doing so.

My data is complicated and has several variables. (It shows how the agricultural sector of the American economy breaks down into grains, fibers, vegetables, etc. as well as where these products end up, such as bread products, pasta, etc.) I am not sure if I will make one big diagram with many circles (perhaps 20) or several smaller diagrams.

Ideally I will need something that can:

* Make the circles different sizes to indicate quantity.
* Control the colors of circles.
* Show different degrees of overlapping circles.
* Include many circles -- not just 3.
* Add labels.
* Produces attractive output that is potentially publishable.

I am happy to pay for a software package. But free software is nice.

Thanks in advance for your tips!
posted by tnygard to Computers & Internet (9 answers total) 7 users marked this as a favorite
If you're using circles ("two-dimensional spheres"), mathematically you are limited to only three circles overlapping [1]. More specifically, if you have four or more sets, you can't use circles to display all possible overlap possibilities.

R has a Venn option, but the Venn diagrams are not proportional to the size of the sets you input, and it is therefore not always useful. But R outputs PostScript, which is almost immediately publication-ready or can be manipulated downstream with Illustrator or the like.

Google Chart offers very limited (3-circle) proportional Venn diagramming. It isn't very flexible, can't be modified and doesn't lend itself to easy scripting. Also, it renders web-quality output, which can't really be used for publication.

VennMaster is a Java-based tool for drawing proportional Venn diagrams and may be promising for some of your visualization needs. VennMaster outputs JPEG and SVG. SVG is an XML-based vector illustration format, which means you can use tools like ImageMagick to make a publication-quality image from the diagram (e.g., literally "convert myVenn.svg myVenn.eps").

You can control colors and labeling within VennMaster. If you're handy with XML, you can do post-processing on the SVG output to clean it up.

I think VennMaster meets most of your criteria, except the more-than-three-set requirement, which no Venn diagramming tool can perform correctly.

All three of these software options are free.

"A Note on Venn Diagrams", Lewis Pakula, The American Mathematical Monthly, Vol. 96, No. 1 (Jan., 1989), pp. 38-39
posted by Blazecock Pileon at 9:15 AM on March 10, 2009 [3 favorites]

In general, making Venn diagrams with more than three sets is a complicated problem. This may not be the best way for you to display your data. See, e.g., A Survey of Venn Diagrams.

I think you would have to figure out what you wanted your picture to look like, and then think about the problem in terms of how do you draw such a figure, rather than trying to find a software package that will do your diagram generation for you.
posted by leahwrenn at 9:20 AM on March 10, 2009

If you're using circles ("two-dimensional spheres"), mathematically you are limited to only three circles overlapping

This is true, but it's entirely possible that the OP is not really talking about Venn Diagrams, but Euler Diagrams. The primary difference between the two is the requirement that Venn Diagrams show all possible combinations.

If that's the case, things become easier, but I'm not sure if any of those tools handle Euler Diagrams -- might be worth looking at.
posted by toomuchpete at 9:25 AM on March 10, 2009

Here's a paper where the researchers use ellipses instead of circles, showing the overlaps of four sets.

But I don't know what software they used, if they automated this. They might have just used Illustrator directly.

There is a limit of 6 ellipses, as opposed to 3 circles. Further, the overlaps may not always be proportional; for example, a subset with a cardinality of 300 is shown with the same area as another subset with 164 elements.

I'm not sure what software is out there to draw Euler diagrams programmatically. Perhaps Mathematica or MATLAB? Maybe these folks would be a good contact.
posted by Blazecock Pileon at 9:42 AM on March 10, 2009

To correct my last comment, that limit is 5 sets with ellipses, not 6.
posted by Blazecock Pileon at 10:00 AM on March 10, 2009

Response by poster: Thank you for your thoughts so far. I now see that Euler Diagrams are probably a better option for me, so any recommendations on those would be appreciated as well.
posted by tnygard at 11:21 AM on March 10, 2009

This could be done in Adobe Photoshop using different levels of opacity for each colored circle.

The free alternative would be GIMP.

I suppose it could also be done in Adobe Illustrator using opacity masks for each shape.

The free alternative would be Inkscape.
posted by clearly at 12:31 PM on March 10, 2009

Photoshop could also be used for scaling of the circles by altering the numeric values in the transform function. Alignment could be done by enabling the rulers.

In Illustrator, you can also change the sizes of the circle to represent numerical relationships. You can also enable a grid to guide the relationships between the circles.

Both programs should produce results with great scalability if you stick with just shapes and text.

If I were you, I'd calculate the sizes of the circles and their relationships and then use a graphics program to illustrate the calculations. If you did this on a large document in one of these programs, you could achieve great accuracy in their relationships by simply using the rulers/gridlines.
posted by clearly at 12:46 PM on March 10, 2009

Perhaps you would be better served with a bipartite graph, with agricultural products on one side and commercial food on the other side. Each node represents a particular product, and you could make the sizes of the nodes different relative to their national gross sales or volume. You could indicate that nodes on the same side of the graph are intersecting in some way with Venn-like overlaps or you could use boxes that overlap multiple nodes to indicate that they are linked in some way.

I don't think a mathematical software package is going to do what you want here, as people have indicated. If you can find a script in MATLAB that does what you want you can start with that, then do the second iteration in a graphics package like GIMP, OmniGraffle, or Adobe.
posted by onalark at 11:25 AM on March 11, 2009

« Older Who will send me TV listings like the ones in TV...   |   How to shop online in the UK? Newer »
This thread is closed to new comments.