R/geom_cartogram.r
geom_cartogram.Rd
This replicates the old behaviour of geom_map()
, enabling specifying of
x
and y
aesthetics.
geom_cartogram(mapping = NULL, data = NULL, stat = "identity", ..., map, na.rm = FALSE, show.legend = NA, inherit.aes = TRUE)
mapping | Set of aesthetic mappings created by |
---|---|
data | The data to be displayed in this layer. There are three options: If A A |
stat | The statistical transformation to use on the data for this layer, as a string. |
... | Other arguments passed on to |
map | Data frame that contains the map coordinates. This will
typically be created using |
na.rm | If |
show.legend | logical. Should this layer be included in the legends?
|
inherit.aes | If |
geom_cartogram
understands the following aesthetics (required aesthetics are in bold):
map_id
alpha
colour
fill
group
linetype
size
x
y
# NOT RUN { # When using geom_polygon, you will typically need two data frames: # one contains the coordinates of each polygon (positions), and the # other the values associated with each polygon (values). An id # variable links the two together ids <- factor(c("1.1", "2.1", "1.2", "2.2", "1.3", "2.3")) values <- data.frame( id = ids, value = c(3, 3.1, 3.1, 3.2, 3.15, 3.5) ) positions <- data.frame( id = rep(ids, each = 4), x = c(2, 1, 1.1, 2.2, 1, 0, 0.3, 1.1, 2.2, 1.1, 1.2, 2.5, 1.1, 0.3, 0.5, 1.2, 2.5, 1.2, 1.3, 2.7, 1.2, 0.5, 0.6, 1.3), y = c(-0.5, 0, 1, 0.5, 0, 0.5, 1.5, 1, 0.5, 1, 2.1, 1.7, 1, 1.5, 2.2, 2.1, 1.7, 2.1, 3.2, 2.8, 2.1, 2.2, 3.3, 3.2) ) ggplot() + geom_cartogram(aes(x, y, map_id = id), map = positions, data=positions) ggplot() + geom_cartogram(aes(x, y, map_id = id), map = positions, data=positions) + geom_cartogram(data=values, map=positions, aes(fill = value, map_id=id)) ggplot() + geom_cartogram(aes(x, y, map_id = id), map = positions, data=positions) + geom_cartogram(data=values, map=positions, aes(fill = value, map_id=id)) + ylim(0, 3) # Better example crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests) crimesm <- reshape2::melt(crimes, id = 1) if (require(maps)) { states_map <- map_data("state") ggplot() + geom_cartogram(aes(long, lat, map_id = region), map = states_map, data=states_map) + geom_cartogram(aes(fill = Murder, map_id = state), map=states_map, data=crimes) last_plot() + coord_map("polyconic") ggplot() + geom_cartogram(aes(long, lat, map_id=region), map = states_map, data=states_map) + geom_cartogram(aes(fill = value, map_id=state), map = states_map, data=crimesm) + coord_map("polyconic") + facet_wrap( ~ variable) } # }