“Wspomóż rozwój naszego Bloga. Kliknij w Reklamę. Nic nie tracisz a zyskujesz naszą wdzięczność … oraz lepsze, ciekawsze TEKSTY. Dziękujemy”
Mapy mogą być bardzo przydatnymi narzędziami do zrozumienia danych geograficznych. W tej sekcji stworzymy mapę z pakietem ggplot2. Celem jest pokazanie lokalizacji wiadomości naszych klientów, PRICE związanych z ich zakupami i odpowiednich PROFIT_RATIO. Ten przykład pokaże nam, jak połączyć dane z ramek danych sales i cliet_messages.
Nasza funkcja graph_lient_messages_static() otrzymuje jako parametry client_messages i sales ramek danych, a to wszystko, czego potrzebuje, ponieważ pokazujemy niefiltrowane (pełne) zestawy danych. Najpierw musimy połączyć nasze dwie ramki danych za pomocą wspólnego identyfikatora, którym jest SALE_ID. W tym celu używamy funkcjimerge() i określamy, że chcemy zachować wszystkie obserwacje w ramce danych x, która jest pierwsza (client_messages) i nie chcemy zachowywać obserwacji z ramki danych y, czyli drugiej (sales), jeśli nie mają odpowiedniego identyfikatora w pierwszej ramce danych. Dzięki temu możemy zachować tylko te dane, z którymi są skojarzone wiadomości klientów. Następnie tworzymy dane geograficzne mapy z map_data() (jest w pakiecie ggplot2) i filtrujemy je, aby usunąć dowolny region oznaczony jako „ANTARCTICA”. Aby właściwie utworzyć wykres, użyjemy dwóch głównych warstw. Pierwszą z nich są dane geograficzne, które dodaje się funkcją geom_polygo(), wykorzystując dane world_map, określając współrzędne i grupy (grupy definiują krajów) i użyj ciemnych kolorów, aby kontrastować z naszymi kropkami. Druga warstwa to dane wiadomości, które są dodawane za pomocą funkcji geom_point(), używając scalonej ramki danych data, z odpowiednimi współrzędnymi i dodając kolory i rozmiary za pomocą PRICE i PROFIT_RATIO odpowiednio. Ponieważ w tym przykładzie używamy zmiennej numerycznej do określenia koloru, otrzymamy gradient kolorów zamiast dyskretnych kolorów, jak w poprzednich przykładach. Na koniec określamy rzeczywistą paletę kolorów za pomocą funkcji scale_color_viridis() ustawiamy odpowiednie etykiety osi i sprawiamy, że współrzędne mają równe jednostki za pomocą funkcji coord_fixed(). Jeśli nie użyjemy tej ostatniej funkcji, możemy uzyskać mapy, które są zdeformowane:
graph_liet_messages_static <- function(cliet_messages, sales) {
data <-merge(
client_message, sales,
„SALE_ID” , all.x = TRUE,
all.y = FALSE
)
world_map <- filter(map_data(„world), region != „Antarctica”)
return(
ggplot() +
geom_polygon(
data = world_map,
aes(long, lat, group = group),
color + „grey60”,
fill = „grey50”
)+
geom_point(
data = data,
aes(LNG, LAT, color = PRICE, size = PROFIT__RATIO)
)+
scale_color_viridis(option = „inferno”) +
ylab(„Latitude”) +
xab(„Logitude”) +
oord_fixed()
)
}
Teraz możemy tworzyć nasze mapy za pomocą następującego wywołania funkcji:
graph_client_messages_static(client_messages, sales)
W ten sposób otrzymasz następujący wykres:
Oczywiście, jeśli chcesz uogólnić tę funkcję, możesz sparametryzować niektóre zmienne używane do specyfikacji wykresu, tak jak to zrobiliśmy w poprzednich przykładach