Bivariate thematic mapping with ArcMap? Yes you can!
Colored proportional circles cannot be drawn directly on polygons, but they can be drawn on points. Thus, all you have to do first is to put your polygon data into point data. In the following example, I will be using a pre-existent point layer of commune centers to map data pertaining to the communes. This is a standard cartographic practice when mapping with symbols, as the populations you map tend to concentrate, well… in those centers. If you were mapping, say, climatic data, you would put your circles on the spots of the measurement stations. If you don’t have such a point layer, you can make one, for example by using Data Management Tools > Features > Feature To Point. In this example I already have my commune centers:
The next thing to do is to add thematic data from polygons to points. You can do this by the “join” method, based on the spatial locations. Every point falls inside a polygon, and gets its data. The new point layer will be saved wherever you want, under whatever name.
Usually, you have raw data only, given in absolute values. Colored circles are useful above all when you want to show both proportional and absolute values. Proportional values should be rendered as color shades, and absolute values as symbol sizes. In this example, we will show the population of women per commune, and their relative importance, given in per cents of the total population. We have to calculate these per cents. This can be done by first opening the attribute table of our freshly produced point layer and by adding a field:
We shall name our new variable “pct_femmes”:
Then we use the field calculator to get the percent of total population. Note that I use the Python language in my script. VB works too, but looks slightly different :
Now everything is ready to produce proportional circles. Right-click on your point layer to open its Properties. Under the Symbology tab, choose Quantities > Graduated colors. Pick your relative variable (“pct_femmes” in our case) and your color ramp. Than click on the “Advanced” button and pick “Size…”. In some cases, you might need to “Apply” first, otherwise “Size…” remains greyed out.
As my size variabe, I pick “P00BWtot”, which, in my case, is the absolute number of women. I divide it by 100 to limit the size of my circles. Log() or another transformation can also be applied, in order to smoothen the variation of circle sizes.
This is it, your bivariate symbol map in ArcMap, you’re done…
… or almost done. Apparently, symbol “size”, in ArcMap, defines not the surface of the circles, but their diameters. There is a π * r^2 factor you have to account for in your formula. π being a constant, you can skip it if you wish, but you need to square-root your values if you wish your circle areas to be proportional to them. Thus, “Sqr ( [Sum_P00BWTOT]/ 3.14)” or simply “Sqr ( [Sum_P00BWTOT])” is what you want to use as for your Advanced Size expression.
Further, as you can see on the figure above, ArcMap does not take into account circle overlapping. If you don’t want your large circles to hide the small ones, you have to order them by size, in descending order of your population variable (in our case Sum_P00BWTOT). In ArcMap, sorting your table in table view won’t be enough for this purpose. You need to sort your dataset in the dbf file, which is only slightly more tedious. Use ArcToolbox > General > Sort to do this:
An alternative method would be to order the dbf file associated with your layer with some external software, for example Libre Office Calc. But I will not get into the details of this here. Using the methods described up to here, this is what you get. This time you’re all set: