ggmap i dane z Google Analytics
Nasza strona, stwur.pl istnieje już kilka miesięcy i od początku swojego istnienia cieszy się spory zainteresowaniem miłośników R z całego świata. Są dane, warto je zwizualizować, zwłaszcza, że pasują do tematyki naszego następnego spotkania I ty możesz zostać kartografem!, które odbywa się już jutro!. W tej notce skupimy się na pokazaniu ilu użytkowników ze wszystkich krajów świata weszło na naszą stronę od stycznia do marca.
library(ggplot2)
library(ggmap)
library(maps)
library(mapdata)
library(dplyr)
library(reshape2)
library(RColorBrewer) # potrzebujemy ladnych kolorow
# o tym jak pobierać dane z google analytics innym razem - teraz skupimy się na samej wizualizacji
dat <- read.csv("https://raw.githubusercontent.com/STWUR/gdzie-mieszkaja-STWURy/master/STWURy.csv")
# nazwy UK i USA trzeba dostosowac do nazw z pakietu mapdata
summaries_country <- group_by(dat, country) %>%
summarise(sessions = sum(sessions),
users = sum(users),
newUsers = sum(newUsers)) %>%
mutate(region = factor(country, labels = c("Denmark", "Finland", "Germany", "Iceland",
"Ireland", "Italy", "Netherlands", "Norway",
"Poland", "Slovenia", "Spain", "Sweden",
"Switzerland", "UK", "USA"))) %>%
select(-country)
# tworzymy mape swiata
world_map <- map_data("world")
other_countries <- unique(world_map[["region"]])[!(unique(world_map[["region"]]) %in% summaries_country[["region"]])]
# jeszcze dluga droga przed STWURem - w tylu krajach o nas nie slyszeli!
print(length(other_countries))
## [1] 237
# dodajmy informacje, ze mamy 0 uzytkownikow w kazdym z krajow ze zmiennej other_countries
country_full <- rbind(summaries_country,
data.frame(sessions = 0,
users = 0,
newUsers = 0,
region = other_countries)) %>%
mutate(usersF = cut(users, c(0, 1, 10, 30, 550), include.lowest = TRUE))
# tworzymy zmienna dyskretna userF, aby mapa wygladala ladniej
# to nasi uzytkownicy z calego swiata
ggplot(country_full, aes(map_id = region)) +
geom_map(aes(fill = usersF), map = world_map, color = "grey", size = 0.1) +
expand_limits(x = world_map$long, y = world_map$lat) +
theme_bw() +
scale_fill_manual("STWURy", values = brewer.pal(5, "GnBu"))
Jak można oczekiwać i co potwierdza powyższa mapa, STWUR to wydarzenie głównie europejskie, dlatego też warto przyjrzeć się z bliska Staremu Kontynentowi.
ggplot(country_full, aes(map_id = region)) +
geom_map(aes(fill = usersF), map = world_map, color = "black", size = 0.1) +
expand_limits(x = c(-10, 35), y = c(35, 70)) +
theme_bw() +
scale_fill_manual("STWURy", values = brewer.pal(5, "GnBu"))
STWUR, naturalnie, najbardziej popularny jest w Polsce, zaskakiwać może jednak duża liczba STWURów z Danii i Niemiec. O ile to pierwsze można jeszcze wyjaśnić moim pobytem na Politechnice Duńskiej, gdzie w czasie wolnym aktywnie pracowałem nad stroną STWURa, o tyle niemieckie STWURy budzą moje zaciekawienie. Ujawnijcie się :)
Podsumowując, jak wszystko w R, rysowanie map jest proste i przyjemne. Na jutrzejszym spotkaniu wspólnie zajmiemy się mapami dla Polski, gdzie porównywać ze sobą będziemy zarówno województwa jak i mniejsze regiony statystyczne. Zapraszamy! Materiały są już dostępne w naszym repozytorium: https://tinyurl.com/STWUR-3.