我试图使用faceting生成多个填充不同值的地图.
我创建了下面的简化示例,它再现了我正在尝试做的事情和我不希望从ggplot得到的结果.我使用美国地图并为州创建两个假设社区.我可以单独绘制每个社区,但是在我尝试同时生成它们的地方,我只得到一张地图.
require(ggplot2)
require(maps)
map <- map_data("state")
states <- unique(map$region)
# generate some hypothetical communities
runA <- data.frame(region=states, id="A",
community=rbinom(length(states),1,.5))
runB <- data.frame(region=states, id="B",
community=rbinom(length(states),1,.5))
membership <- rbind(runA, runB)
# plot an individual map of communities from run A
df <- merge(map, runA, by="region")
ggplot(df) +
aes(long, lat, group=group) +
coord_equal() +
geom_polygon(aes(fill = as.factor(community)))
# likewise for B
df <- merge(map, runB, by="region")
ggplot(df) +
aes(long, lat, group=group) +
coord_equal() +
geom_polygon(aes(fill = as.factor(community)))
# now instead do one plot with two maps from facetting on id
df <- merge(map, membership, by="region")
ggplot(df) +
aes(long, lat, group=group, facets= id ~.) +
coord_equal() +
geom_polygon(aes(fill = as.factor(community)))
Run Code Online (Sandbox Code Playgroud)
理想情况下,最后一个地块应该有两个地图,一个显示"A"中的社区,另一个显示"B"中的社区.相反,该图只显示一个地图,我甚至不确定是什么映射到填充.
你只是错误地指定了facet.这样做,它会工作正常:
ggplot(df) +
aes(long, lat, group=group) +
coord_equal() +
geom_polygon(aes(fill = as.factor(community))) +
facet_grid(facets= id ~.)
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
2288 次 |
| 最近记录: |