2017-05-28 7 views
1

ラスタの前でggmapからマップをプロットしようとしています。このマップには白い領域がたくさんあるので、白い領域を透明にして、ggplotを使って残りの要素をカラフルなラスタの上にプロットすることができます。plot ggmap image overラスタ

Fulanus_bbox <- c(left = 17.250000, bottom = -3.916667, right = 36.916667, top = 8.416667) 
Fulanus_big <- ggmap::get_map(location = Fulanus_bbox, source = "stamen", maptype = "toner-lite") 
map <- ggmap::ggmap(Fulanus_big) 
map 

この2つの解決策は私が考えていたものですが、私はこれが動作するとは思っていませんでした。

map_colors <- map$layers[[2]]$geom_params$raster 
map_colors[map_colors == '#FFFFFF'] <- '#00FFFFFF' 
map$layers[[2]]$geom_params$raster <- map_colors 
map 

は私もパターンが維持されたかどうかを確認するためにラスタに色を変換しようとしている:私は地図上の16進コードを交換しようとしている

maprow <- nrow(map_colors) 
mapcol <- ncol(map_colors) 
map_factors <- as.factor(map_colors) 
map_numeric <- as.numeric(map_factors) 
map_matrix <- matrix(map_numeric, nrow = maprow, ncol = mapcol) 
map_raster <- raster::raster(map_matrix) 
map_raster <- raster::setExtent(map_raster, Fulanus_bbox) 
raster::crs(map_raster) <- "+proj=longlat +datum=WGS84 +no_defs +ellps=WGS84 +towgs84=0,0,0 " 
raster::plot(map_raster) 

やっていることは可能ですか?そうなら、どうですか?

+0

「#00FFFFFF」ではなく「#FFFFFF00」を試してください –

+0

ありがとうございました!私はアルファのコードが最初に来たと思った –

答えて

0

このマップは、白い部分がたくさんあるので、私は白い部分を作りたかった 透明[...]これは、動作しているようです

map <- ggmap::ggmap(Fulanus_big) 
r <- map$layers[[2]]$geom_params$raster 
r[r=="#FFFFFF"] <- NA 
map$layers[[2]]$geom_params$raster <- r 
map 

enter image description here

+0

ありがとう!とても明白です... –