2012-04-24 3 views
14

Я пытаюсь построить Google map, который запрашивается с помощью пакета RgoogleMaps и объединяет его с ggplot. В конечном счете, я хочу показать общее население, используя geom_point, несколько похожее на рисунок ниже, однако я стараюсь сосредоточиться на регионе Монтгомери из-за чрезмерного заговора.Построение карты google с ggplot в R

Я расстроен, потому что я не могу построить свою запрошенную карту в R. Я пробовал пару пакетов, таких как read.jpeg и png, но это не совсем сработало.

R коды:

#query google map 
al1 <- GetMap(center=c(32.362563,-86.304474), zoom=11, destfile = "al2.jpeg", 
     format="jpg",maptype="roadmap") 

#load only specific states 
alabama <- subset(all_states, region %in% c("alabama")) 

#population 
p1 <- ggplot() 
p1 <- p1 + geom_polygon(data=alabama, 
     aes(x=long, y=lat, group=group), colour="white", fill="grey10") 
p1 <- p1 + geom_point(data=quote, aes(x=IntPtLon, y=IntPtLat, size=TotPop, 
     color=TotPop),colour="coral1") + scale_size(name="Total Pop") 

enter image description here

EDIT:

Вот мой грубый результат. Я все еще хочу:

  • Изменить масштаб размеров точек, потому что они кажутся довольно маленькими на карте.
  • Сделайте точки прозрачными или не заполненными, чтобы карта все еще была видна.

enter image description here

al1 <- get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'terrain') 
al1MAP <- ggmap(al1)+ geom_point(data=quote_mgm, aes(x=IntPtLon, y=IntPtLat, size=TotPop)) 
+4

вы можете проверить ggmap и OpenStreetMap пакеты, оба из которых поддерживают ggplot2 растр замышляет –

+3

Вот хороший пример из вики, которые могут быть полезны для проверьте: https://github.com/hadley/ggplot2/wiki/Crime-in-Downtown-Houston%2C-Texas-%3A-Combining-ggplot2-and-Google-Maps –

+0

aha! Я только что нашел этот сайт и получил свой ответ. Недостатком является то, что на графику требуется некоторое время, поэтому я проверю ggmap и OSM. Благодарю вас! – Ken

ответ

24

Это то, что вы после этого. Он использует пакет ggmap, который упрощает процесс. См. ?get_map и ?ggmap для дальнейших опций. Отличный ресурс доступен в The R Journal

library(ggmap) 
al1 = get_map(location = c(lon = -86.304474, lat = 32.362563), zoom = 11, maptype = 'roadmap') 
al1MAP = ggmap(al1) 
al1MAP 

enter image description here

+0

Да, в дополнение к этому, я хочу рисовать точки в верхней части этой карты (возможно, используя geom_point), но в то же время я хочу сделать ее визуально привлекательной. Я не хочу, чтобы мои точки скрывали/перекрывали существующую информацию о карте. Есть идеи? – Ken

+0

сделать точки полупрозрачными? –

+0

Вы можете добавить дополнительные слои в al1Map, используя обычные геометрии ggplot2. Таким образом, чтобы добавить точки, произойдет что-то вроде 'al1MAP + geom_point (data = data, aes (x = x, y = y))'. Что касается того, что я не хочу освещать существующую картографическую информацию, я не могу вам помочь. Возможно, вы можете попробовать разные стили карт, найти что-то, что содержит меньше деталей. –