I wonder if this is asking too much of ggplot. I’m trying to plot some graphs over the geographical regions they relate to using facet_grid The outcome seems on track, but there are some problems getting the scale right, getting rid of the unused grid boxes. I wonder if anyone knows how to tweak it to work?
The example is based on the inbuilt US States dataset.
Any assistance appreciated!
# My failed attempt to regional summary graphs plotted over the region centroid (to overlay onto map):
# example based on the States dataset
require(ggplot2)
# Approx centroid coordinates for the US regions - I created these as the information is missing from the dataset
lat <- c(32L, 42L, 42L, 32L, 42L, 42L, 43L, 32L, 32L, 32L, 42L, 42L, 43L, 43L, 43L, 43L, 32L, 32L, 43L, 32L, 43L, 43L, 43L, 32L, 43L, 42L, 43L, 42L, 43L, 43L, 42L, 43L, 32L, 43L, 43L, 32L, 42L, 43L, 43L, 32L, 43L, 32L, 32L, 42L, 43L, 32L, 42L, 32L, 43L, 42L)
lon <- c(-88L, -114L, -114L, -88L, -114L, -114L, -73L, -88L, -88L, -88L, -114L, -114L, -91L, -91L, -91L, -91L, -88L, -88L, -73L, -88L, -73L, -91L, -91L, -88L, -91L, -114L, -91L, -114L, -73L, -73L, -114L, -73L, -88L, -91L, -91L, -88L, -114L, -73L, -73L, -88L, -91L, -88L, -88L, -114L, -73L, -88L, -114L, -88L, -91L, -114L)
region.centres <- data.frame(lon = lon, lat = lat)
state.x77 <- data.frame(state.x77)
state.x77$State <- row.names(state.x77)
region <- data.frame(Region = as.character(state.region))
data <- data.frame(c(data.frame(state.x77), region, region.centres))
# I can plot a random summary graph for each region:
p <- ggplot(data, aes(Income, colour = 'red')) +
geom_density(alpha = 0.2)
# But trying to plot onto centroid nearly works but results in loss of geographical positional accuracy
# and includes various graphs that fill the empty grid slots but are not necessary
p + facet_grid(lat ~ lon, space = "free", drop=T)
# How can I get uniform discrete graphs to sit over the centroid for each region?
Perhaps annotations would suit your use case better than faceting. Try the following after your own code. Annotations require a lot of manual fiddling, but should get the job done.
annotation_customwas added inggplot20.9.0. Seehttp://cloud.github.com/downloads/hadley/ggplot2/guide-col.pdf