GGMap + GGPlot
Wiemy już jak pobrać fragment podkładu z Google Maps. Dzisiaj zaprezentujemy na pobranej mapie nasze dane z użyciem biblioteki ggplot2. Wczytajmy potrzebne biblioteki:
library(rgdal) library(ggplot2) library(ggmap)
W naszym poście wykorzystano linie kolejowe, których używaliśmy już wielokrotnie wcześniej. Wczytajmy warstwę:
kolej <- readOGR("D:/","kolej",stringsAsFactors = F)
Do wyświetlenia warstwy wektorowej w ggplot konieczne jest jej przetransformowanie do data frame z użyciem funkcji fortify:
kolej_df <- fortify(kolej)
Do zmiennej map zapisujemy mapę, którą chcemy wyświetlić:
map <- ggplot(kolej_df, aes(x=long,y= lat,group=group)) + geom_path(color = 'red',size=2) + ggtitle("Nasza mapa")
Poszczególne elementy map to:
ggplot() – inicjalizuje obiekt, deklarujemy w nim dane wejściowe (kolej_df) oraz współrzędne i zmienną grupującą aes()
geom_path() – sposób wyświetlania danych jako linie zgodnie z ich zapisem w tabeli wejściowej. Definiujemy tu jeszcze kolor i wielkość linii.
ggtitle() – nazwa tabeli
Wyświetlamy wynik:
print(map)
Dodajmy teraz podkład ggmap do naszych kolei. Najpierw musimy przetransformować warstwę wektorową do układu geograficznego:
kolej_geog = spTransform(kolej,"+init=EPSG:4326")
Pobieramy fragment mapy satelitarnej Google dla warstwy wektorowej:
sat_map <- get_map(location = kolej_geog@bbox, maptype = 'satellite')
Wyświetlamy podkład:
ggmap(sat_map)
Transformujemy warstwę do data frame:
kolej_df <- fortify(kolej_geog)
Zapisujemy mapę w inny sposób niż wcześniej. Podkładem jest sat_map na którą nakładamy geom_path()
map <- ggmap(sat_map) + geom_path(data = kolej_df, aes(x=long,y=lat,group=group),color = 'red',size=2)
Wyświetlamy wynik:
print(map)
Ggplot to bardzo bogata bibliotek do wizualizacji różnego typu danych. Każdy znajdzie w niej coś dla siebie. W tym poście pokazaliśmy jak w prosty sposób wykorzystać ją do wizualizacji warstw shp na podkładach Google Maps, ale na pewno w przyszłości pokażemy Wam w jaki sposób można wykorzystać inne funkcje tej biblioteki.