Если вы не хотите настраивать параметр darken
и не хотите углубляться в пользовательские стили для Карт Google, вы можете напрямую изменить объект ggmap
.
ggmap
по сути является символьной матрицей, где каждая ячейка представляет собой шестнадцатеричный код цвета, который должен там воспроизводиться. (Есть некоторые дополнительные атрибуты, которые описывают долготу и широту (в системе отсчета координат EPSG:4326) нижней левой и верхней правой точек ggmap
, а также источник и уровень масштабирования.)
Вы можете использовать функцию adjustcolor()
из базы R
, чтобы взять цвет (в виде шестнадцатеричного кода, целого числа или строки символов — всего, что примет функция col2rgb()
) и набрать вверх или вниз красный, зеленый, синий и альфа-канал. каналы. Альфа-канал управляет прозрачностью, где 1 полностью непрозрачен, а 0 полностью прозрачен.
Вот воспроизводимый пример...
Во-первых, получите данные meuse
, которые поставляются с пакетом sp
.
data(meuse)
Преобразуйте кадр данных в объект sp
, назначьте ему правильную систему координат (которую я нашел здесь), затем преобразовать его систему отсчета координат в долготу/широту.
coordinates(meuse) = ~x+y
proj4string(meuse) <- "+init=epsg:28992 +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725 +units=m +no_defs"
meuse <- spTransform(meuse, CRS("+init=epsg:4326"))
Получите базовую карту Google, используя приблизительный центр всех точек. Я использую те же другие аргументы, что и вы, но устанавливаю масштаб намного выше, поскольку все эти точки довольно близки друг к другу.
meuse_basemap <- get_map(location = colMeans(coordinates(meuse)),
maptype = "terrain",
source = "google",
zoom = 13,
language = "de-DE",
color = "bw")
Здесь я изменяю ggmap
, чтобы сделать его прозрачным. Я сохраняю атрибуты как объект, чтобы можно было переназначить те же атрибуты более прозрачному ggmap
. Я не смог найти способ изменить только значения ggmap
на месте, не удаляя атрибуты ggmap
(что означает, что измененный ggmap
не работает с функцией ggmap()
).
meuse_basemap_attributes <- attributes(meuse_basemap)
Создайте матрицу тех же размеров, что и базовая карта Google, но со всеми шестнадцатеричными кодами цветов в каждой ячейке, настроенными на половину прозрачности.
meuse_basemap_transparent <- matrix(adjustcolor(meuse_basemap,
alpha.f = 0.5),
nrow = nrow(meuse_basemap))
Назначьте сохраненные атрибуты измененной матрице, чтобы снова превратить ее в пригодный для использования ggmap
.
attributes(meuse_basemap_transparent) <- meuse_basemap_attributes
Вот оригинальный сюжет:
ggmap(meuse_basemap) +
geom_point(data = as.data.frame(meuse),
aes(x = x, y = y, color = dist),
cex = 2)
![исходный ggmap](https://i.stack.imgur.com/AKyyS.png)
А вот и более прозрачно!
ggmap(meuse_basemap_transparent) +
geom_point(data = as.data.frame(meuse),
aes(x = x, y = y, color = dist),
cex = 2)
![более прозрачный ggmap](https://i.stack.imgur.com/oikQp.png)
person
mikoontz
schedule
28.03.2018
ggmap(get_googlemap("chicago", style=style_string))
см.?get_googlemap
документацию - person cory   schedule 30.06.2016