我想知道这是不是对ggplot要求太高了。我正在尝试绘制一些与使用facet_grid相关的地理区域的图表结果似乎在轨道上,但有一些问题,正确的规模,摆脱未使用的网格框。我想知道是否有人知道如何调整它以使其正常工作?
该示例基于内置的美国各州数据集。
感谢您的帮助!
# 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?
发布于 2012-08-30 13:06:55
也许注释比刻面更适合您的用例。在您自己的代码之后尝试执行以下操作。注释需要大量的手动操作,但应该可以完成工作。
library(maps)
states = data.frame(map("state", plot=FALSE)[c("x", "y")])
data.south = subset(data, lon == -88 & lat == 32)
overlay = qplot(data.south$Income, geom="density", color="red")
plot = (ggplot(states, aes(x, y))
+ geom_path()
+ annotation_custom(grob=ggplotGrob(overlay),
xmin=-88-2,
xmax=-88+2,
ymin=32-6,
ymax=32+6))
print(plot)
annotation_custom
是在ggplot2
0.9.0中添加的。看见
http://cloud.github.com/downloads/hadley/ggplot2/guide-col.pdf
https://stackoverflow.com/questions/12113817
复制