Легенда карты меняет язык и размер и приближает острова - PullRequest
0 голосов
/ 30 августа 2018

Мне удалось построить эту карту с данными Евростата enter image description here

Однако, так как я работаю на испанском языке, название и легенда должны быть на этом языке, тем не менее, в легенде все еще появляются два слова на английском, которые я не могу изменить (честно говоря, я не знаю, как). Другая проблема заключается в том, что острова, показанные до сих пор, составляют карту с большим количеством пробелов. Есть ли способ сделать эти острова ближе или опустить их?

Я также выкладываю код, если кто-то хочет с ним работать.

Спасибо за вашу поддержку.

library(rgdal)
library(RColorBrewer)
library(sp)
library(GISTools)
library(classInt)
library(maptools)
library(SmarterPoland)
library(reshape)
library(reshape2)

setwd("yourdirectory")

EU_NUTS <- readOGR(dsn = "yourdirectory/NUTS_2010_60M_SH/data", layer = "NUTS_RG_60M_2010")
plot(EU_NUTS)

proj4string(EU_NUTS)

EU_NUTS <- spTransform(EU_NUTS, CRS("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs"))

plot(EU_NUTS)

EurostatTOC <- getEurostatTOC()

head(EurostatTOC)

data <- getEurostatRCV(kod = "demo_r_frate2")

unique(data$age)
unique(data$time)

sub_data <- subset(data, (age == "Y_GE50") & (time == "2016 "))

mapdata <- cast(data, geo ~ time + age)

head(mapdata)

head(EU_NUTS@data)

EU_NUTS@data = data.frame(EU_NUTS@data, mapdata[match(EU_NUTS@data[, "NUTS_ID"], mapdata[, "geo"]), ])

my_colours <- brewer.pal(5, "BuGn")

breaks <- classIntervals(EU_NUTS@data$X2016_TOTAL, n = 5, style = "fisher", unique = TRUE)$brks

plot <- plot(EU_NUTS, col = my_colours[findInterval(EU_NUTS@data$X2016_TOTAL,
   breaks, all.inside = TRUE)], axes = FALSE, border = NA)
CountryBorder <- EU_NUTS[EU_NUTS@data$STAT_LEVL_ == 0, ]
plot <- plot(CountryBorder, border = "#707070", add = TRUE)

plot <- legend(x = -6080915, y = 8730220, legend = leglabs(round(breaks, digits = 2), between = " a <"), fill = my_colours, bty = "n", cex = 0.7, title = "Tasa de fertilidad")
plot <- plot(EU_NUTS, col = my_colours[findInterval(EU_NUTS@data$X2016_TOTAL,
breaks, all.inside = TRUE)], axes = FALSE, border = NA)
plot <- plot(CountryBorder, border = "#707070", add = TRUE)
plot <- legend(x = -6080915, y = 8730220, legend = leglabs(round(breaks,  digits = 2), between = " a <"), fill = my_colours, bty = "n", cex = 0.7, title =  "Tasa de fertilidad")
title("Tasa total de fertilidad en regiones EU NUTS-2\nNúmero de hijos por mujer en 2016")
...