无法在ggplot等高线图中绘制阴影区域

时间:2019-02-04 17:38:09

标签: r ggplot2 maps

根据t检验,我需要在世界地图上绘制变量的轮廓图,并绘制阴影灰色半透明区域是我的重要变量。

我的数据以下列方式位于具有列顺序的data.frame中:纬度,经度,变量,测试。纬度和经度是坐标(是等距网格),变量是每个点的实数,而Test是变量0-1(必须对值== 1的点进行阴影处理,对值== 0的点进行阴影处理应该没有阴影)。

我没有阴影部分的代码是这样的(我添加了一种创建示例数据的方法):

library(ggplot2)
library(metR)

map_data <- map_data('world2')
delta <- 0.5
lat_lim <- c(-15,15)
lon_lim <- c(120,240)

lon <- seq(from=lon_lim[1],to=lon_lim[2],by=0.5)
lat <- seq(from=lat_lim[1],to=lat_lim[2],by=0.5)

data <- data.frame(lon= rep(lon,length(lat)),
               lat= rep(lat,each=length(lon)))
data$var <-( ((data$lat)**2) /(15**2) + ((data$lon - 180)**2) / (60**2) ) * (-2) + 4 
data$test <- as.numeric(data$var > 3)
graf <- ggplot() + geom_contour_fill(data = data,aes(x=lon,y=lat,z=var),na.fill = T,binwidth = delta) +
  geom_contour(data = data, aes(x = lon, y = lat, z=var),color = "black",binwidth = delta) +
  geom_text_contour(data = data, aes(x = lon, y = lat, z=var),binwidth = delta,skip = 1) +
  scale_fill_divergent()
graf <- graf + geom_polygon(data=map_data,aes(x=long, y = lat, group = group),color='black',fill='white')

graf <- graf + coord_fixed(1.4, xlim= lon_lim,ylim = lat_lim)

这是一个简单的示例,其中要添加阴影区域的地方是变量大于3的所有地方。为此,我尝试使用以下方法:

geom_raster(data= data, aes(x=lon, y=lat, fill=test),alpha=0.3)

但是,当我尝试使此阴影区域在== 1时为黑色,而在== 0时什么都没有时,它将更改其他图形的比例。而且我无法找到要添加的函数或包,以及像这样的区域。

0 个答案:

没有答案