Построение тепловой карты с помощью geom_raster в ggmap
У меня есть фрейм данных, содержащий долготу, широту и переменную интенсивности (var1.pred).
Я хотел бы построить гладкий контурный контур на карте ggmap. Я сделал это, используя график geom_tile, но он не выглядит гладким. Я уменьшил размеры плитки, но участок занимает много места. Что я хочу сделать, так это использовать geom_raster, чтобы построить хороший чистый контурный контур поверх объекта карты. Используя приведенный ниже код, я сделал это с помощью ggplot:
raster <- ggplot(idw.output, aes(x = lon, y = lat, z = var1.pred))+
geom_raster(aes(fill = var1.pred), alpha = 0.5) +
scale_fill_gradient(low = "white", high = "blue")+
geom_contour(colour = "white", binwidth = 1) +
labs(fill = "Frequency", title = "Frequency per area", x = 'Longitude', y = 'Latitude')
raster
Однако я не могу понять, как совместить это с объектом ggmap. Я пробовал разные вещи, такие как:
ggmap(fr) + #fr is a map from get_map
ggplot(idw.output, aes(x = lon, y = lat, z = var1.pred))+
geom_raster(aes(fill = var1.pred), alpha = 0.5) +
scale_fill_gradient(low = "white", high = "blue")+
geom_contour(colour = "white", binwidth = 1) +
labs(fill = "Frequency", title = "Frequency per area", x = 'Longitude', y = 'Latitude')
Но я получаю ошибку:
Ошибка: не знаю, как добавить o в сюжет
Я знаю, что проблема связана с объединением объектов ggplot и ggmap, но я не могу понять, как заставить его работать. Любая помощь будет оценена.
Спасибо,
Робин
1 ответ
Без воспроизводимого примера невозможно протестировать ваш код, но вполне вероятно, что вы можете переместить ggplot
позвонить в base_layer
аргумент, так что вы можете продолжать добавлять geoms.
ggmap(fr, base_layer = ggplot(idw.output, aes(x = lon, y = lat, z = var1.pred))) +
geom_raster(aes(fill = var1.pred), alpha = 0.5) +
scale_fill_gradient(low = "white", high = "blue")+
geom_contour(colour = "white", binwidth = 1) +
labs(fill = "Frequency", title = "Frequency per area", x = 'Longitude', y = 'Latitude')