程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 ggmaps大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 ggmaps?

开发过程中遇到在 ggmaps的问题如何解决?下面主要结合日常开发的经验,给出你关于在 ggmaps的解决方法建议,希望对你解决在 ggmaps有所启发或帮助;

我这里有一些代码,用于绘制带有屏蔽栅格数据点的地图。

这里我定义了一个随机数据框:

set.seed(20)
lon = seq(from = 3.4,to = 6.3,by = 0.1)
lat = seq(from = 13.3,to = 10.1,by = -0.1)

lati <- c()
long <- c()
for (i in 1:length(lat)) {
  for (j in 1:length(lon)) {
    lati <- c(lati,lat[i])
    long <- c(long,lon[j])
  }
}

vals = rnorm(length(lati))

df <- data.frame(
  longitude=long,latitude=lati,value=vals)

我在这里为地图设置边界:

library(raster)
library(sf)
library(ggplot2)
nga <- getData('GADM',country='NGA',level=1)
keb <- subset(nga,name_1 %in% "Kebbi")
keb2 <- st_as_sf(keb)

这是dataframe的屏蔽过程:

spg <- df
coordinates(spg) <- ~ longitude + latitude
grIDded(spg) <- TRUE
rasterDF <- raster(spg)
rasterDF_crop <- crop(rasterDF,extent(keb2))
rasterDF_masked <- mask(rasterDF_crop,keb2)
df_masked <- raster::as.data.frame(rasterDF_masked,xy=TRUE)
colnames(df_masked) <- colnames(df)

然后我用“ggmap”制作一张地图:

library(ggmap)
slat <- min(df_masked$latitude)-0.3
slon <- min(df_masked$longitude)-0.3
llat <- max(df_masked$latitude)+0.3
llon <- max(df_masked$longitude)+0.3
kebBox <- c(left=slon,bottom=slat,right=llon,top=llat)
kebMap <- get_stamenmap(bBox=kebBox,zoom=8,maptype="toner")
keb_map <- ggmap(kebMap,extent="panel")

然后我用蒙版光栅制作新地图:

tilekeb <- keb_map + geom_tile(data=df_masked,aes(x=longitude,y=latitude,fill=value),Alpha=1/2,color="black",size=0) +
  geom_sf(data = keb2,inherit.aes = FALSE,fill = NA)

tilekeb

地图如下所示:

在 ggmaps

我想移除遮罩光栅之外的灰色阴影:

在 ggmaps

谢谢!

解决方法

您需要为 NA 中使用的 geom_tile 值设置颜色。为此,请添加一行 scale_fill_continuous(na.value = NA)

见https://stackoverflow.com/a/35069695/12400385

tilekeb <- keb_map + 
  geom_tile(data=df_masked,aes(x=longitude,y=latitude,fill=value),alpha=1/2,#color="black",size=0) +
  scale_fill_continuous(na.value = NA) +
  geom_sf(data = keb2,inherit.aes = FALSE,fill = NA)

tilekeb

在 ggmaps

大佬总结

以上是大佬教程为你收集整理的在 ggmaps全部内容,希望文章能够帮你解决在 ggmaps所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: