free cartograms

I’m quite interested in cartograms, and my thesis — for which I begin user testing this week — concerns their effectiveness across varying designs. Cartograms have never been easy to make, and until recently were largely produced only in university computer science or cartography departments. Now, though, a few applications manage to free cartograms from the hands of computer scientists, mathematicians, and professional cartographers. All produce one or more variety of the value-by-area cartogram.


Adrian Herzog’s MAPresso produces a variety of thematic maps, including two cartogram designs: the semi-contiguous circular cartogram and the contiguous rubber sheet method of Dougenik, Chrisman, and Niemeyer (1985).

The application takes an odd .psc format as input, but the standard MAPresso distribution includes a shp2psc program for converting from ESRI shapefiles. The program outputs to EPS, and can be used to create a Java web app. The application requires only a recent Java install, so can be run on many platforms.

What the above doesn’t suggest is that MAPresso is very hard to figure out. It took me an afternoon. But, luckily, Mr. Herzog is very helpful and responds quickly to emails.

Cartogram Generator

Frank Hardisty has created a very simple and effective interface to the Gastner-Newman diffusion-based contiguous cartogram algorithm that is all the rage these days. It’s simple, works quickly, and requires only a recent Java install. It both inputs and outputs shapefiles. I like it, and used it to produce the U.S. population cartograms for my thesis.

CartogramCreator ArcScript

Eric Wolf’s very cool and flexible CartogramCreator ArcScript lets the user generate two types of value-by-area cartogram: noncontiguous and the same rubber sheet method as MAPresso (above). It accepts polygonal shapefiles as input, and outputs to a graphics layer within your current ArcMap (and can therefore be exported as EPS or AI, among other formats). CartogramCreator requires ArcGIS 9.x, which typically requires a Windows installation.

CartogramCreator offers two types of noncontiguous cartogram: they can either allow overlap or not. The former require modification by the cartographer, but can produce more visually pleasing cartograms. As recommended by Judy Olson (1976), the latter non-overlapping method uses the enumeration unit of highest density (in the chosen variable) as the anchor unit. All other units are scaled down. This latter method has the advantage of preserving the approximate centroid of units, and therefore the overall, or global, shape of the group of features. It has the possible disadvantage of abundant whitespace in the resultant cartogram.

Though the script lists circular cartograms, the results are simply noncontiguous proportional symbol maps (though Eric Wolf notes in his to do list that he plans to convert the circular method to utilize Dorling’s circular cartogram algorithm).


I only heard about GeoDa recently. Produced by the Spatial Analysis Lab at the University of Illinois, GeoDa was first released in ‘03. It reads and writes shapefiles, and includes many analysis and display options. A 2005 update added the ability to create circular cartograms, based on Dorling’s algorithm. It appears to be pretty faithful to Dorling’s original, and even allows the user to set the number of iterations for more topologically accurate cartograms.

Unfortunately, GeoDa is only available for Windows machines.

Many more cartogram algorithms appear in pure code implementations. Most are written in C or C++, due to the computational intensity of cartogram construction. Some, though, are written in Python, as is my circular cartogram algorithm and Eric Wolf’s rubber-sheet algorithm. Perhaps next I’ll do a post on the freely available pure code cartogram algorithms.

The above shows that progress is being made in the democratization of cartograms. Much work remains. Many cartogram designs, including the most effective and aesthetically pleasing methods (IMO the constraint-based method of Kocmoud and House and the signature block method of the New York Times), have yet to be incorporated into a nice app with GUI. It is still therefore my dream (and charge) to create a nice app (w/ or w/o Flash frontend) that allows users to create cartograms of varying designs with their own geographic data. In doing so, users will get to compare different types of cartograms, and hopefully gain a better understanding of the true strengths and weakness of certain designs.

Any free cartogram creation apps I missed?


  1. Rob reminded me of the GeoViz Toolkit, also by Frank Hardisty, which produces the Gastner-Newman cartogram. I’m not sure about the export options tho.

    Posted May 31, 2008 at 12:25 pm | Permalink
  2. You might be interested in: Spatially Ordered Treemaps by: Jo Wood, Jason Dykes
    Visualization and Computer Graphics, IEEE Transactions on, Vol. 14, No. 6. (2008), pp. 1348-1355. (Jo Wood’s webpage is
    This produces rectangular cartograms (and more besides).

    Also ‘Scapetoad’ at
    (continuous cartograms)

    How is your Dorling python script coming along? I would be very interested in a copy when you have finally cracked it. Thanks

    Posted December 19, 2008 at 7:29 am | Permalink
  3. @ David Lloyd,

    Thanks for the tips. Hadn’t seen the “spatially ordered treemaps” article before (still haven’t actually…cursed lack of access to academic articles!). But I’m going to seek that one out.

    Regarding the Dorling cartogram Python code: I reached an acceptable solution, but never really got the code where I wanted it. Plan to implement it in AS3 one of these days, with the only server-side dependency being the topology generation. I’d be happy to send you the current state of the work in Python.

    Posted December 19, 2008 at 8:47 pm | Permalink
  4. I’d also love a copy of those python scripts, if you don’t mind!

    Posted May 26, 2009 at 5:59 pm | Permalink

One Trackback

  1. By Creating Effective Cartograms » Tim Showers - Web Development, Design, and Data Visualization» Blog Archive on December 20, 2008 at 12:22 am

    [...] in Java (with code) are available here and here.  There’s a rundown of more methods at indiemaps. A Rescaled Election Cartogram. Can You Identify the [...]

Post a Comment

Your email is never published nor shared. Required fields are marked *