首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过geom_polygon使用镶嵌面来生成地图格网

如何通过geom_polygon使用镶嵌面来生成地图格网
EN

Stack Overflow用户
提问于 2011-12-14 04:05:52
回答 1查看 2.6K关注 0票数 6

我正在尝试使用faceting来生成多个填充了不同值的映射。

我已经创建了下面的简化示例,它既重现了我正在尝试做的事情,也重现了我在ggplot中没有预料到的结果。我使用美国的地图,为各州生成两个假想的社区。我可以单独绘制每个社区,但在我尝试对它们进行刻面并同时生成它们的情况下,我只能得到一张地图。

代码语言:javascript
复制
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)))

理想情况下,最后一个地块应该有两个地图,一个用"A“表示社区,另一个用"B”表示社区。相反,绘图只显示了一张地图,我甚至不确定什么正在映射到填充。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-14 04:15:47

您只是以错误的方式指定了这些方面。像这样做,它会工作得很好:

代码语言:javascript
复制
ggplot(df) +
  aes(long, lat, group=group) +
  coord_equal() +
  geom_polygon(aes(fill = as.factor(community))) +
  facet_grid(facets= id ~.)

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8495441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档