使用ggplot和ggmap绘制光栅图像时出现问题

时间:2020-05-19 16:05:40

标签: r ggplot2 ggmap r-raster

我想使用ggplot2实现光栅二进制图的绘图,并且我想使用ggmap将雄蕊图添加为背景。在不同的文章之后,我实现了以下代码行: '

library(sp)
library(raster)
library(rasterVis)
library(ggplot2)
library(ggmap)
library(tmaptools)
library(rgdal)
test <- raster('C:/France_accuracy/img_fig/image_france_2009.tif')
test_df <- rasterToPoints(test)
test_df <- data.frame(test_df)
colnames(test_df) <- c("X","Y","Values")
head(test_df)
#Simple plot using ggplot
p1 <- ggplot() + geom_raster(data=france_df, mapping=aes(X, Y, fill= factor(Values)))
#Background and final map
background <- get_stamenmap(bbox = c(-0.7744, 44.2001,-0.5286, 44.3017),
                            maptype='toner-background', zoom = 5)
finalmap <- ggmap(background) +  
            geom_raster(data=france_df, mapping=aes(X, Y, fill= factor(Values)))

我收到此错误消息

“错误:geom_raster仅适用于笛卡尔坐标运行 rlang::last_error()查看错误发生的位置。此外: 警告消息:删除了包含缺失值的169728行 (geom_raster)“”

这里是一小幅图像https://drive.google.com/drive/u/0/folders/1945TBCzW9lmKjOaN_4CwoD_XfT9PXoO5的链接

我对这个软件包不是很熟悉,我一直使用经典的绘图功能。有人可以帮我吗? 预先感谢

1 个答案:

答案 0 :(得分:0)

尝试将coord_cartesian()添加到finalmap

rngX <- range(test_df$X)
rngY <- range(test_df$Y)
background <- get_stamenmap(bbox = c(rngX[1], rngY[1], rngX[2], rngY[2]),    
                            maptype='toner-background', zoom=13)
finalmap <- ggmap(background) + 
            geom_raster(data=test_df, mapping=aes(X, Y, fill= factor(Values)), alpha=0.3) + 
            coord_cartesian() 
print(finalmap)

enter image description here

相关问题