Created
October 27, 2017 11:31
-
-
Save eLindros/7d962d1e32fe44f662a4cafc06891f5a to your computer and use it in GitHub Desktop.
[Example to Map Data with R] #gis #germany #bundesland
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
library(tidyverse) | |
library(sp) | |
library(mapproj) | |
# Lade Kartendaten mit Bundeslandgrenzen | |
deu <- readRDS("DEU_adm1.rds") | |
# Lade meine Daten, die ich dann anspielen will an deu mit BUNDESLAND-Variable | |
load("tk3.RData") # Tabelle tmp wird geladen | |
tmp1 <- tmp %>% | |
select(VERSNR, ARZTNUMMER, BEHANDLUNGSDATUM, BUNDESLAND) %>% | |
unique() %>% | |
filter(!is.na(BUNDESLAND)) %>% | |
count(BUNDESLAND) | |
# Da ich noch einen Quotienten berechnen will (der dann auch auf der Karte | |
# dargestellt wird) bereite ich noch eine weitere Tabelle mit den Einwohnerdaten | |
# der Bundesländer vor | |
BUNDESLAND <- c( | |
"Baden-Württemberg", | |
"Bayern", | |
"Berlin", | |
"Brandenburg", | |
"Bremen", | |
"Hamburg", | |
"Hessen", | |
"Mecklenburg-Vorpommern", | |
"Niedersachsen", | |
"Nordrhein-Westfalen", | |
"Rheinland-Pfalz", | |
"Saarland", | |
"Sachsen", | |
"Sachsen-Anhalt", | |
"Schleswig-Holstein", | |
"Thüringen" | |
) | |
# Die hatte ich irgendwo rauskopiert | |
einw_31.12.2015 <- c( | |
10879618, | |
12843514, | |
3520031, | |
2484826, | |
671489, | |
1787408, | |
6176172, | |
1612362, | |
7926599, | |
17865516, | |
4052803, | |
995597, | |
4084851, | |
2245470, | |
2858714, | |
2170714 | |
) | |
# Jetzt füge ich die Spalten BUNDESLAND und einw_31.12.. zusammen und | |
# verknüpfe diese direkt mit den daten | |
tmp2 <- tmp1 %>% | |
left_join( | |
tibble(BUNDESLAND, EINW=einw_31.12.2015) # Hier kreiere ich die Tabelle aus den Spalten | |
) %>% | |
mutate( | |
K = n / (EINW /100000) # Hier berechne ich den Quotienten, den ich darstellen will | |
) | |
# Die nächsten Schritte habe ich von einem Tutorial: http://rmhogervorst.nl/cleancode/blog/2017/01/06/plotting-a-map-with-ggplot2.html | |
tmp3 <- tibble(id=row.names(deu@data), BUNDESLAND=deu@data$NAME_1) | |
tmp4 <- left_join(tmp3, tmp2) | |
tmp5 <- left_join(fortify(deu), tmp4, by="id") | |
# Prognos Farben | |
rot <- "#e40019" | |
blau <- "#00568f" | |
dunkelblau <- "#001e32" | |
# Hier dann der eigentlich plot | |
ggplot(tmp5) + | |
geom_polygon(aes(x = long, y = lat, group = group, fill=K), | |
color = "white") + | |
coord_map() + theme_void() + | |
scale_fill_continuous(low=blau, high = rot, name="Arzt-Patienten-Kontakte\n je 100.000 Einwohner") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment