2016-06-01 22 views
6

rysuję mapę regionów Rosji wykorzystaniem GADM dane:"Globe" -shaped mapa Rosji

setwd("~/Desktop/Master thesis/") 
library(sp) 
library(RColorBrewer) 
library(raster) 

data <- getData('GADM', country='RUS', level=1) 
#exclude columns I don't need 
data <- data[,-c(2,3,4,5,7,8,9,10,11,12,13)] 
data$region <- as.factor(iconv(as.character(data$NAME_1))) 
png(file = "~/Desktop/myplot2.png", width = 1300, height = 700, units = "px") 
spplot(data, "region", xlim=c(15,190), ylim=c(40,83), col.regions = colorRampPalette(brewer.pal(12, "Set3"))(85), col = "white") 
    dev.off() 

Mapa uzyskałem: enter image description here

Mapa mam zbyt "płaskie" i nie wygląda jak mapa z Wikipedii. Prawa i lewa część mapy powinna być nieco odwrócona (ponieważ wynikają one z okrągłego kształtu kuli ziemskiej).

Mapa z encyklopedii: enter image description here

Czy istnieje jakiś sposób, aby uczynić go bardziej „w kształcie kuli”?

+0

Trzeba wybrać odpowiednią projekcję. Zaimportowałem mapę do QGIS, zobaczę, która projekcja pasuje najlepiej i zastosuję ją w kodzie R. –

Odpowiedz

3

Jeśli nie masz nic przeciwko używaniu ggplot2, możesz użyć coord_map("azequalarea").

Utwórz ramkę danych:

library(ggplot2) 
library(maptools) 
data.f <- fortify(data, region = "region") 

Then działki:

ggplot(data.f) + 
    geom_polygon(aes(x = long, y = lat, fill = id, group = group), colour = "white") + 
    xlim(15,190) + 
    ylim(40,83) + 
    coord_map("azequalarea") + 
    scale_fill_manual(values = colorRampPalette(brewer.pal(12, "Set3"))(85)) + 
    theme(axis.line = element_blank(), 
     axis.text.x = element_blank(), 
     axis.text.y = element_blank(), 
     axis.ticks = element_blank(), 
     axis.title.x = element_blank(), 
     axis.title.y = element_blank(), 
     panel.background = element_blank(), 
     panel.border = element_blank(), 
     panel.grid.major = element_blank(), 
     panel.grid.minor = element_blank(), 
     plot.background = element_blank()) 

enter image description here

+0

Głównym celem narysowania mapy było scalenie danych geograficznych z panelem wskaźników społeczno-ekonomicznych, a następnie zaznaczenie obszarów o barwie zgodnej z poziomem ubóstwa " – MariaBee

+0

@MariaBee, więc gdzie dokładnie jest problem? Prawdopodobnie można połączyć dane z innymi danymi ramka (według regionu) i określ wypełnienie według zmiennej ubóstwa – beetroot

+0

Mam intuicję za kodem, ale w moim przypadku zajęło to około 15 minut, aby narysować wykres z twojego kodu, nawet jeśli został zapisany bezpośrednio w pliku png (jak w moim przykładzie) Bez zapisywania do png, nigdy się nie pojawił i po prostu rozbił – MariaBee