Невозможно нанести заштрихованную область на контурную карту ggplot - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужно нанести контурную карту переменной на карту мира и нарисовать затененные серые полупрозрачные области, которые были моей переменной в значительном значении согласно t-критерию.

Мои данные находятся в data.frame спорядок столбцов следующим образом: широта, долгота, переменная, тест.Широта и долгота - это координаты (это равная разнесенная сетка), переменная - это действительное число для каждой точки, а тест - это переменная 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, это меняет масштаб другого графика.И я не смог найти функцию или пакет для добавления и области, как это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...