Оптимизация скорости построения муниципальных / региональных данных на карте в R - PullRequest
0 голосов
/ 09 ноября 2018

Я смотрю на график данных для регионов в стране. Мне нужно сделать это для многих наборов данных (но в одной стране). У меня есть рабочий метод, который я построил на следующем коде http://biblogg.no/2015/05/18/building-a-map-of-norway-in-r/ в разделе «Построение карт в R с использованием пакета« sp »(Lattice Plot)». Это работает отлично и довольно аккуратно. Метод использует пакеты SP и работает с пространственными полигонами.

Однако он очень медленный, учитывая, как мало он делает (Excel делает то же самое в десятой части времени). Это заставляет меня задуматься о том, существует ли более простой метод, когда мой набор данных для каждого графика содержит только целое число для каждой области. Ранее я использовал функцию map_data для отображения стран, но это не работает для регионов во всех странах

Редактировать: размещение используемых данных

norway2 <- readOGR(dsn="/Users/isa/Documents/Courses/Johns Hopkins/RKart_Norge/NOR_adm" ,
               layer="NOR_adm2")
# We take a look at the data
norway2_data <- norway2@data
str(norway2_data); head(norway2_data)

# We create a dataframe for the churn rate per regions
d <- c( "Akershus" , "Aust-Agder", "Buskerud", "Finnmark",  "Hedmark" ,  "Hordaland",  "Møre og Romsdal" , "Nord-Trøndelag" ,   "Nordland" ,  "Oppland", "Oslo", "Ãstfold", "Rogaland",  "Sogn og Fjordane",  "Sør-Trøndelag",  "Telemark",  "Troms", "Vest-Agder" , "Vestfold" )
e <- c(1.0, 1.1, 1.5, 1.55, 2.9, 3.12, 3.1, 4.2, 4.3, 4.8, 5.1, 5.3, 5.5, 5.56, 7.9, 8.3, 11, 5.6, 6.1)
name3 <- c("NAME_1", "Churn"); dt2 <- as.data.frame(cbind(d, e),     stringsAsFactors=FALSE) 
dt2$e <- as.numeric(dt2$e); colnames(dt2) <- name3; churn <- dt2
# We plot the Norwegian regions using the unionSpatialPolygons function from the 'maptools' package
IDs <- norway2_data$ID_1
# We merge Polygons
norway3_new <- unionSpatialPolygons(norway2, IDs)
# We build the new SpatialPolygonsDataFrame with the churn rate
norway4_new <- SpatialPolygonsDataFrame(norway3_new, churn) 

# Then you can use spplot to visualize the Norwegian regions with their respective churn rate
# We define the color palette
pal2 <- colorRampPalette(c("white", "red"))
# Remove the plot frame
trellis.par.set(axis.line=list(col=NA))
# Plot the regions with Lattice
spplot(norway4_new, "Churn", main="Churn Rate per Norwegian Region (Fylke)", 
   lwd=.4, col="white", col.regions=pal2(19), colorkey = FALSE, bty="n")
...