Tworzenie prostego kartogramu ćw.2
Korzystając z danych w pliku wynagrodzenia.xlsx, stwórz kartogram prezentujących rozkład przeciętnyh miesięcznych wynagrodzeń brutto w powiatach województwa wielkoplskiego w 2019 roku.
W pierwszej kolejności wczytujemy dane przestrzenne za pomocą funkcji read_sf z pakietu sf, a następnie dane atrybutowe dla powiatów województwa wielkopolskiego za pomocą funkcji read_xlsx z pakietu readxl. Ograniczamy zbiór danych przestrzennych do powiatóW województwa wielkopolskiego i dodatkowo tworzymy w zbiorze mieszk czteroznakowy kod województwa za pomocą funkcji substr i zapisujemy go w zmiennej o nazwie kod_pow2 Łączymy oba obiekty w jeden zbiór za pomocą funkcji merge deklarując nazwy zmiennych, po których łączymy obydwa zbiory.
<-read_sf("dane/gadm36_POL_2.shp")
pow<-read_xlsx("dane/wynagrodzenia.xlsx")
wages<-pow[pow$NAME_1=='Wielkopolskie',]
pow_wlkp$KOD_POW2<-substr(wages$KOD_POW,1,4)
wages<-merge(pow_wlkp,wages,by.x="CC_2",by.y="KOD_POW2") dane_2
W niniejszym przykładzie skorzystamy z legendy dla zmiennych ciągłych, dlatego nie dzielimy zmienności badanej cech na przedziały.
Mapa konturowa powiatóW województwa wielkopolskiego
par(mai=rep(0,4),mar=rep(0,4))
ggplot(data=dane_2) +
geom_sf()
Dodanie tytułu i opisu osi wykresu mapowego.
par(mai=rep(0,4),mar=rep(0,4))
ggplot(data=dane_2) +
geom_sf() +
xlab("Długość geograficzna")+ylab("Szerokość geograficzna") +
ggtitle("Przeciętne miesięczne Wynagrodzenie brutto w 2019 roku", subtitle = "Bez podmiotów gospodarczych do 9 osób")
Wyłączenie wyświetlania siatki i współrzędnych geograficznych, białe tło.
par(mai=rep(0,4),mar=rep(0,4))
ggplot(data=dane_2) +
geom_sf(fill=NA) +
ggtitle("Przeciętne miesięczne Wynagrodzenie brutto w 2019 roku", subtitle = "Bez podmiotów gospodarczych do 9 osób") +
theme(rect=element_blank(), axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank())
Kolorystyka mapy, legenda.
par(mai=rep(0,4),mar=rep(0,4))
ggplot(dane_2) +
geom_sf(aes(fill=WAGES)) +
scale_fill_continuous(low="yellow", high="red",name="Wynagrodzenie\nw zł") +
ggtitle("Przeciętne miesięczne Wynagrodzenie brutto w 2019 roku", subtitle = "Bez podmiotów gospodarczych do 9 osób") +
theme(rect=element_blank(), axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank(),
legend.position = "right")
Dodanie adnotacji oraz etykiet - nazw województw i wartości wskaźnika.
par(mai=rep(0,4),mar=rep(0,4))
ggplot(dane_2) +
geom_sf(aes(fill=WAGES)) +
scale_fill_continuous(low="yellow", high="red",name="Wynagrodzenie\nw zł") +
ggtitle("Przeciętne miesięczne Wynagrodzenie brutto w 2019 roku", subtitle = "Bez podmiotów gospodarczych do 9 osób") +
geom_sf_text(mapping=aes(label=NAME_2),size=2.5)+
geom_sf_text(mapping=aes(label=WAGES),size=2.5,nudge_y = -0.05) +
annotate("text",x=18.5,y=53.5, label="Polska = 5181,63",size=3) +
annotate("text",x=18.5,y=53.3, label="Wielkopolskie = 4687,39",size=3) +
theme(rect=element_blank(), axis.ticks = element_blank(), axis.text.x = element_blank(), axis.text.y = element_blank(),
legend.position = "right", axis.title.x = element_blank(),axis.title.y = element_blank())
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not give correct results for longitude/latitude data
## Warning in st_point_on_surface.sfc(sf::st_zm(x)): st_point_on_surface may not give correct results for longitude/latitude data