14
votes

I would like to remove the lines between regions of a choropleth generated in ggplot. My question is motivated by a very large map with very very small regions (census block groups) that are so numerous that it's impossible to see the color filling the shape given the density of the borders. I'm using updated RStudio on a Mac with ggplot2 version 1.0.0; the same problem does not seem to occur on Windows.

Here are examples (using counties) that have different colors for each county so that the borders are not necessary. The first uses purple borders for emphasis. The second has color = NA which was my unsuccessful attempt to eliminate all borders.

library("ggplot2")
library("maps")
tn = map_data("county", region = "tennessee")
ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group), color = "purple")

enter image description here

ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group), color = NA)

enter image description here

3
color = NA works just fine for me. - Gregor Thomas
It removes the purple but it doesn't remove the space between the polygons. - Nancy
It does for me, perhaps you can post your code and plot with color = NA. Also, maybe make sure you're using an up-to-date version of ggplot2. - Gregor Thomas
color=NA works for me, as does lwd=0. In fact, setting lwd=0 works even if the colour is purple. Is this really a grey outline or is it the background showing through because of sub-pixel accuracy problems in the polygon drawing? What happens if you do this on a red background? - Spacedman

3 Answers

2
votes

Another option is to set both fill and color equal to group, which worked on the macOS I tried it on:

library("ggplot2")
library("maps")
tn = map_data("county", region = "tennessee")
ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group, color = group))

Output:

enter image description here

6
votes

Setting color = NA works for me:

ggplot(tn, aes(x = long, y = lat, group = group)) + 
    geom_polygon(aes(fill = group), color = NA) +
    coord_map()

produces this plot with no spaces between polygons.

tn-map-no-borders

I'm using ggplot2 version 1.0.0.

I added coord_map to give it the right aspect ratio. On my machine, that doesn't affect the borders, I'm not sure why borders are visible in your second post. Here's mine:

ggplot(tn, aes(x = long, y = lat, group = group)) + 
  geom_polygon(aes(fill = group), color = NA)

enter image description here

6
votes

I can confirm it's specific to the Mac. Was just trying to do the same and 'colors=NA' has no visible effect in R Studio on a Mac, the borders still show. Just loaded the project on Windows and the borders are gone.

For reference, my set-up: Mac is running R Studio 0.98.1074 on Mac OS X 10_10_1 (Yosemite). Windows is running R Studio 0.98.1073 on Windows 7.