Легенда ggplot - как изменить цветовой спред? - PullRequest
0 голосов
/ 10 февраля 2019

Я хотел бы изменить отображение развертки панели легенды, как на jpeg ниже.В примере 1 я хотел бы отобразить пороговое значение «100» в середине панели легенды.В примере 2 я хотел бы отобразить среднее значение (белого цвета) в середине панели легенды.Я подозреваю, что оба потребовали бы подобной строки кода.Может ли кто-нибудь очень любезно помочь мне с этим?

#library
library(raster)
library(ggplot2)

#sample raster
r <- raster(ncol=36, nrow=18)
r[] <- (-ncell(r)/2+1):(ncell(r)/2)
r[1,] <- 5000
plot(r)

var_df <- as.data.frame(rasterToPoints(r))

### example 1
p <- ggplot() 
p <- p + geom_raster(data = var_df , aes(x = x, y = y, fill = layer))
p <- p + coord_equal()
p <- p + scale_fill_gradientn(
  colours=c("red", "yellow", "skyblue", "darkblue"),
  values = rescale(c(min(var_df$layer),
                     100,
                     100.01,
                     max(var_df$layer))))
p
### example 2
meanval <- mean(var_df$layer)
p <- ggplot() 
p <- p + geom_raster(data = var_df , aes(x = x, y = y, fill = layer))
p <- p + coord_equal()

p <- p + scale_fill_gradient2(low = muted("red"), mid = "white",
                              high = muted("blue"), midpoint = meanval)
p

enter image description here

...