如何解决将SF对象传递给ggmap R时指定数字箱
我有一个数据框对象,该对象是通过使用sf :: read_sf读取形状文件而创建的,并与一些已有的数据合并在一起,并具有共同的地理位置列:
boundaries <- sf::read_sf('./shapefile')
map <- merge(boundaries,data,by.x = "InterZone",by.y = "IntermediateZone2011Code",all.x = FALSE,duplicateGeoms = TRUE)
然后使用ggmap将其覆盖在通过sf get_map函数获得的提供者图块的顶部:
myMap <- get_map(location = c(lon = -2.27,lat = 57.1),zoom = 6,maptype="toner",crop=FALSE,source = 'stamen')
ggmap(myMap) +
geom_sf(data = map,aes(fill=as.factor(column1)),inherit.aes = FALSE) +
scale_fill_brewer(palette = "OrRd") +
coord_sf(crs = st_crs(4326)) +
labs(x = 'Longitude',y = 'Latitude',fill = 'column1') +
ggtitle('column1')
我一直在浏览文档,但是找不到额外的参数来指定垃圾箱的数量。如何明确按固定数量的箱细分列,然后进行映射?
解决方法
没有可重复的示例,很难确切说明正在发生的事情,但是看起来您可能正在使用fill=as.factor(column1)
将连续变量转换为因子。
一种选择是删除as.factor
并使用scale_fill_continuous
或其他选择的连续色阶。
另一种选择是查看cut
,在这里您可以通过指定bin的数量或bin的特定起点和终点来对连续数据进行bin。
# Make n bins
map$data_bin <- cut(map$column,breaks = n )
# Or make specific start and end points for bins
map$data_bin <- cut(map$column,breaks = c(-Inf,50,100,Inf) )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。