2016-06-01 4 views
6

начертить карту регионов России с использованием GADM данных:«Глобус» -образная карта России

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() 

Карты я получил: enter image description here

Карта меня слишком «плоская» и не похож на карту fe из Википедии. Правая и левая части карты должны быть немного повернуты (как из-за круглой формы земного шара).

Карта из Wiki: enter image description here

Есть ли способ, чтобы сделать его более "шаровидный"?

+0

Вы должны выбрать правильную проекцию. Я бы импортировал карту в QGIS, посмотрим, какая проекция лучше всего подходит и применит ее в R-коде. –

ответ

3

Если вы не против использования ggplot2, вы можете использовать coord_map("azequalarea").

Создание фрейма данных:

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

Тогда сюжет:

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

Основная цель рисования карты состояла в объединении геоданных с панелью социально-экономических показателей, а затем для окраски регионов в соответствии с уровнями бедности « – MariaBee

+0

@MariaBee, где именно проблема? Возможно, вы могли бы объединить данные с другими данными (по региону) и укажите заполнение в соответствии с переменной бедности. – beetroot

+0

У меня есть интуиция за вашим кодом. Однако в моем случае потребовалось около 15 минут, чтобы нарисовать сюжет из вашего кода, даже если он был сохранен непосредственно в png-файле (как и в моем примере). Без сохранения в png он никогда не появлялся и просто разбился. – MariaBee

 Смежные вопросы

  • Нет связанных вопросов^_^