интерполированные карты в R: как перекрыть мои данные на карте дорогами и тропами?

Используя R, я пытаюсь получить карту интерполяции, на которой я могу видеть свои путевые точки и их интерполяцию (на основе их значения, называемого N). На заднем фоне я хотел иметь черно-белую карту с видимыми дорогами и тропинками. Я уверен, что это не сложно сделать, но я не понимаю, где я здесь ошибаюсь.

Мои данные выглядят так:

  ALLdata
  ID  lat      long     N
1 213 52.36483 20.77724 5
2 214 52.36483 20.77724 5
3 215 52.36483 20.77724 5
4 216 52.20367 20.97026 6
5 217 52.20267 20.96939 7
6 218 52.20371 20.96483 0
7 219 52.20347 20.96595 1
8 220 52.20260 20.96884 2

Вот мой код:

ALLdata <- read.csv("C:/Users/Me/Desktop/sample_animals.csv",header=TRUE,sep=";")
head(ALLdata)  
setwd("C:/Users/Me/Desktop/dataFieldseason2016/Graphics") #save graphs and maps

# grab a map. get_map creates a raster object
library(ggmap)
rwanda1 <- get_map(location = c(lon = 20.7, lat = 52.3),
               zoom = 9,
               maptype = "toner",
               source = "stamen")

g1 <- ggmap(rwanda1)
g1

# plot map and animals data
# use coord_map with default mercator projection
g1 + 
  geom_tile(data = ALLdata, aes(x = long, y = lat, z = N, fill = N), alpha = 0.8) +
  stat_contour(data = ALLdata, aes(x = long, y = lat, z = N)) +
  ggtitle("animals presence") +
  xlab("Longitude") +
  ylab("Latitude") +
  scale_fill_continuous(name = "animals (N)",
                    low = "white", high = "blue") +
  theme(plot.title = element_text(size = 25, face = "bold"),
    legend.title = element_text(size = 15),
    axis.text = element_text(size = 15),
    axis.title.x = element_text(size = 20, vjust = -0.5),
    axis.title.y = element_text(size = 20, vjust = 0.2),
        legend.text = element_text(size = 10)) +
  coord_map()

Я получил это: введите здесь описание изображения

Ниже то, что не сработало. Я хотел бы видеть свои путевые точки в виде точек на этом интерполяционном облаке, где самая высокая точка темнее, а самая низкая — светлее или белее. введите здесь описание изображения

Я не могу видеть свои точки или свою интерполяцию.


person Parus major    schedule 08.11.2016    source источник
comment
Это интерпретационное облако выглядит как заполненный контур, возможно, построенный с помощью решетки::contourplot, loess2d или akima::interp. вам нужно представить данные с двумерными значениями в области этой карты.   -  person IRTFM    schedule 08.11.2016
comment
Я пытался использовать stat_countour, но карта показывает мне шкалу моих значений N с правой стороны без какого-либо цвета на самой карте, и у меня есть эта ошибка: Невозможно сгенерировать данные контура, я попытался с statdensity_2d, но результат не тот, что Я хочу, так как он показывает плотность точек, а не значение N: в акиме я вижу цвета интерполяции, но я бы предпочел иметь карту в качестве фона. Я не знаю, как это сделать: как я могу совместить акима с черно-белой картой в качестве фона?   -  person Parus major    schedule 11.11.2016
comment
Я решил свои проблемы, и мне наконец удалось получить интерполированные карты... Я использовал эту процедуру stackoverflow.com/questions/19339296/ в любом случае спасибо за вашу помощь!   -  person Parus major    schedule 24.11.2016
comment
И спасибо за одобрение дубликата. Я ранее нашел этот Q&A в поиске, но не знал, решит ли это вашу проблему.   -  person IRTFM    schedule 24.11.2016
comment
на самом деле это была долгая борьба... Сейчас я столкнулся с последней проблемой: я хочу изменить уровни цвета с тремя определенными цветами и интервалами (например, дождь мм, например красный, синий и желтый, например, от 0 до 150, 150 до 200, 201 до 300. Любое предложение?   -  person Parus major    schedule 25.11.2016
comment
Если поиск по [r] geom_tile fill palette не дал ответа на вопрос, задайте новый вопрос. И на этот раз либо начните с построения полного примера.   -  person IRTFM    schedule 25.11.2016
comment
Чуть позже, но я работал над этим, когда писал свою рукопись :), так что я нашел решение. Во-первых, вы должны создать коллекцию с разрывами, которые вы хотели бы иметь, например: ‹pre› b ‹- c(0,25, 50, 100, 150, 200) ‹code›, затем вы должны вернуться к своему ggplot и добавьте новую строку после geom_tile: ‹pre›scale_fill_gradientn(colours=c(льняной,темно-зеленый, синий,коричневый,красный,темно-красный),breaks=b,labels=format(b)) ‹code›   -  person Parus major    schedule 14.01.2017