I uploaded the shapefile and saved it, as constantly downloading the 1M file has dubious efficiency. Since I did this with curl on the command line, I was already in the terminal, so I pre-extracted five areas using ogr2ogr :
$ ogr2ogr -f "ESRI Shapefile" \ -where 'COUNTYFP10 IN ("005", "047", "061", "081", "085")' \ boroughs.shp tl_2010_36_county10.shp
Then I read the new shapefile using readOGR and installed some necessary libraries:
library(rgdal) library(maptools) library(ggplot2) boroughs.shp <- readOGR("tl_2010_36_county10/", "boroughs")
Now we separate New York and the other four cities:
nyc <- boroughs.shp[boroughs.shp$NAME10 == "New York",] other_four <- boroughs.shp[boroughs.shp$NAME10 != "New York",]
Read ?elide as it allows you to scale the polygons and move them, and you will need to do more than what is shown in this example. Here I scale nick to 1.1 (arbitrary), but keep the 1: 1 scale for the rest. I take a little shortcut here and do it since elide changes CRS for SpatialPolygonsDataFrames.
nyc <- elide(nyc, scale=1.1) other_four <- elide(other_four, scale=1)
Then we combine them again:
boroughs.shp <- spRbind(nyc, other_four)
and do the necessary work for ggplot:
boroughs <- fortify(boroughs.shp, region="NAME10" )
I prefer geom_map and this gives you adjacent polygons against your site:
gg <- ggplot(data=boroughs, aes(x=long, y=lat)) gg <- gg + geom_map(map=boroughs, aes(map_id=id, group=group), fill="white", color="black") gg <- gg + coord_map() gg

This is obviously not the final state you want, but now you have the tools you need to build the correct cartogram (although I personally am not a fan of distorted polygon maps).
You can learn more about creating cartograms to get the final effect, but it will take even more effort. Real cartograms are the way here, IMO, if you want to do fattening / scaling to show density.
EDIT OR maybe just install for globular ?
gg_globular <- gg + coord_map("globular", orientation=c(41,-74,-22)) + ggtitle("globular")
