Итак, вот мой код для базовой карты:
gg <- ggmap(Peru) +
geom_map(data = peru.coast, map = peru.coast, aes(x = long, y = lat, map_id = region),
fill="gray", color="black") +
xlim(-86, -70) +
ylim(-20, -4) +
labs(x = "Longitude", y = "Latitude") +
coord_map()
Затем я добавляю города, которые хочу назвать вручную (не знал, как это сделать с помощью карт Google, так как мне нужны были только эти 4)
gg <- gg + geom_point(aes(x=-78.981885, y=-8.229354, size=3)) +
annotate("text", label='Salaverry', size=4, x=-77.2, y=-8.229354) +
geom_point(aes(x=-71.345838, y=-17.644347, size=3)) +
annotate("text", x=-70.545838, y=-17.644347, label = 'Ilo', size=4) +
geom_point(aes(x=-77.142375, y=-12.047544, size=3)) +
annotate("text", x=-75.9, y=-12.047544, label = 'Callao', size=4) +
geom_point(aes(x=-78.610677, y=-9.074166, size=3)) +
annotate("text", x=-76.9, y=-9.074166, label = 'Chimbote', size=4)
gg <- gg + guides(size=FALSE) #this removes the legend with the black dot and '3' on it
gg
Я получаю эту прекрасную карту:
Затем я использую этот набор данных для добавления точек данных, и я хочу сделать точки больше или меньше в соответствии с изобилием «n».
Trip_Set sex Set.Lon Set.Lat n
119_1 hembra -81.09390 -9.32338 2
119_7 hembra -81.03117 -9.09622 1
161_3 macho -83.76533 -9.74533 5
193_8 hembra -81.00888 -9.00950 7
255_5 macho -80.14992 -8.64592 1
271_6 hembra -72.20233 -18.05117 6
271_6 macho -72.20233 -18.05117 7
328_7 hembra -78.66667 -12.91700 2
403_3 hembra -80.03037 -10.03900 1
428_2 hembra -83.01305 -8.74883 2
655_4 hembra -71.58363 -18.24882 1
используя этот код:
ggAB <- gg + geom_point(data=dframe4, aes(Set.Lon, Set.Lat, colour='red', size=n))
ggAB <- ggAB + theme(legend.title = element_text(colour="black", size=12, face="bold"))
ggAB <- ggAB + guides(colour=FALSE) #This removes the legend for the red colour
ggAB <- ggAB + scale_size(name='Sharks per line', range = c(5,9))
ggAB <- ggAB + theme(legend.key=element_rect(fill = NA)) #This removes the boxes around the points
ggAB
Однако, когда я это делаю... я получаю следующее:
Точки данных нанесены великолепно (уф!), но почему это делает точки больше для названий моих городов? Кажется, я не могу заставить его просто сохранить изобилие для моих числовых точек данных «n» ... Он также не включает автоматическую легенду (как обычно делает ggplot), даже когда я пытаюсь ввести ее вручную, используя функция scale_discrete.
Я подумал, что это может быть как-то связано с тем, что я использовал gg + guides(size=FALSE)
в первой части, но даже если убрать это, это не работает, а добавляет раздражающую легенду для точек данных моего города.
Любые идеи?
geocode
в пакетеggmap
. Тогда вы сможете избежать ручной работы. - person jazzurro   schedule 17.12.2014cities <- c("Salaverry", "Chimbote", "Callao", "Ilo"); locations <- geocode(cities)
- person jazzurro   schedule 17.12.2014