小编mr.*_*per的帖子

如何设置使用ggplot2来映射栅格

我想使用类似于下面的R studio(在Arc Map中创建)制作一个情节

在此输入图像描述

我试过以下代码:

# data processing
library(ggplot2)
# spatial
library(raster)
library(rasterVis)
library(rgdal)

#
test <- raster(paste(datafold,'oregon_masked_tmean_2013_12.tif',sep="")) # read the temperature raster
OR<-readOGR(dsn=ORpath, layer="Oregon_10N") # read the Oregon state boundary shapefile

gplot(test) +  
  geom_tile(aes(fill=factor(value),alpha=0.8)) + 
  geom_polygon(data=OR, aes(x=long, y=lat, group=group), 
               fill=NA,color="grey50", size=1)+
  coord_equal()
Run Code Online (Sandbox Code Playgroud)

该代码的输出如下所示:

在此输入图像描述

有几点需要注意.首先,R版本缺少分水岭形状文件.那样就好.

其次,R图中较暗的灰色背景是无数据值.在Arc中,它们不显示,但在R中它们显示为gplot.当我使用光栅包中的"plot"时,它们不显示:

plot(test)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我的问题如下:

  1. 如何摆脱'gplot'示例中的深灰色NoData填充?
  2. 如何将图例(颜色条)设置为合理(例如在ArcMap和栅格'情节'图例中?)
  3. 如何控制色彩图?

要注意,我尝试过很多不同的版本

scale_fill_brewer
scale_fill_manual
scale_fill_gradient
Run Code Online (Sandbox Code Playgroud)

等等,但我得到错误,例如

br <- seq(minValue(test), maxValue(test), len=8)

gplot(test)+
geom_tile(aes(fill=factor(value),alpha=0.8)) +

scale_fill_gradient(breaks = br,labels=sprintf("%.02f", br)) +

geom_polygon(data=OR, aes(x=long, y=lat, group=group), 
             fill=NA,color="grey50", size=1)+
coord_equal()

Regions defined for each Polygons …
Run Code Online (Sandbox Code Playgroud)

plot r raster ggplot2 gplots

34
推荐指数
3
解决办法
3万
查看次数

标签 统计

ggplot2 ×1

gplots ×1

plot ×1

r ×1

raster ×1