geom_raster() 在地图顶部生成一个发白的表面
geom_raster() produces a whitish surface ontop of the map
我正在尝试在地理地图上绘制热图以显示变量的地理分布。具有荒谬数据的最小工作代码如下:
library(ggmap)
library(osmdata)
box <- c(left = 2.075, bottom = 41.325, right = 2.25, top = 41.47)
map <- get_stamenmap(bbox = box, maptype = "terrain-lines", zoom = 13)
lon_grid <- seq(2.075, 2.25, length.out = 30)
lat_grid <- seq(41.325, 41.47, length.out = 30)
grid <- expand.grid(lon_grid, lat_grid)
z <- c(rep(NA, 30^2/2), rnorm(30^2/2))
dataset <- cbind(grid, z)
ggmap(map) ### Plot 1
ggmap(map) + ### Plot 2
geom_raster(data = dataset, aes(x = Var1, y = Var2, fill = z), alpha = 0.5, interpolate = TRUE) +
scale_fill_viridis_c(option = "magma", na.value = "transparent") +
coord_equal()
第一张地图看起来很完美:整洁、干净、线条清晰。
第二个,添加了 geom_raster 层,看起来(除了更宽)有点模糊,不是那么清晰。看到 geom_raster 行在地图顶部添加了一个白色层(如果仔细观察,它甚至没有完全覆盖它)。这太糟糕了,我想删除它,或者换句话说,当 geom_raster 生成的图块采用 NA 值时,我希望它采用“透明”颜色。
有什么想法吗?
如果我理解正确的话,栅格中的 NA
似乎不是完全透明的。查看 scale_fill_viridis_c
更改为 na.value = NA
是否符合您的要求。
library(ggmap)
library(osmdata)
box <- c(left = 2.075, bottom = 41.325, right = 2.25, top = 41.47)
map <- get_stamenmap(bbox = box, maptype = "terrain-lines", zoom = 13)
lon_grid <- seq(2.075, 2.25, length.out = 30)
lat_grid <- seq(41.325, 41.47, length.out = 30)
grid <- expand.grid(lon_grid, lat_grid)
z <- c(rep(NA, 30^2/2), rnorm(30^2/2))
<- cbind(grid, z)
ggmap(map) + ### Plot 2
geom_raster(data = dataset, aes(x = Var1, y = Var2, fill = z), alpha = 0.5, interpolate = TRUE) +
scale_fill_viridis_c(option = "magma", na.value = NA) +
coord_equal()
这是它的输出:
我正在尝试在地理地图上绘制热图以显示变量的地理分布。具有荒谬数据的最小工作代码如下:
library(ggmap)
library(osmdata)
box <- c(left = 2.075, bottom = 41.325, right = 2.25, top = 41.47)
map <- get_stamenmap(bbox = box, maptype = "terrain-lines", zoom = 13)
lon_grid <- seq(2.075, 2.25, length.out = 30)
lat_grid <- seq(41.325, 41.47, length.out = 30)
grid <- expand.grid(lon_grid, lat_grid)
z <- c(rep(NA, 30^2/2), rnorm(30^2/2))
dataset <- cbind(grid, z)
ggmap(map) ### Plot 1
ggmap(map) + ### Plot 2
geom_raster(data = dataset, aes(x = Var1, y = Var2, fill = z), alpha = 0.5, interpolate = TRUE) +
scale_fill_viridis_c(option = "magma", na.value = "transparent") +
coord_equal()
第一张地图看起来很完美:整洁、干净、线条清晰。
第二个,添加了 geom_raster 层,看起来(除了更宽)有点模糊,不是那么清晰。看到 geom_raster 行在地图顶部添加了一个白色层(如果仔细观察,它甚至没有完全覆盖它)。这太糟糕了,我想删除它,或者换句话说,当 geom_raster 生成的图块采用 NA 值时,我希望它采用“透明”颜色。
有什么想法吗?
如果我理解正确的话,栅格中的 NA
似乎不是完全透明的。查看 scale_fill_viridis_c
更改为 na.value = NA
是否符合您的要求。
library(ggmap)
library(osmdata)
box <- c(left = 2.075, bottom = 41.325, right = 2.25, top = 41.47)
map <- get_stamenmap(bbox = box, maptype = "terrain-lines", zoom = 13)
lon_grid <- seq(2.075, 2.25, length.out = 30)
lat_grid <- seq(41.325, 41.47, length.out = 30)
grid <- expand.grid(lon_grid, lat_grid)
z <- c(rep(NA, 30^2/2), rnorm(30^2/2))
<- cbind(grid, z)
ggmap(map) + ### Plot 2
geom_raster(data = dataset, aes(x = Var1, y = Var2, fill = z), alpha = 0.5, interpolate = TRUE) +
scale_fill_viridis_c(option = "magma", na.value = NA) +
coord_equal()
这是它的输出: