R - Распечатать названия конкретных стран на карте с помощью rworldmap

Я создаю тепловую карту, используя карту Европы в пакете rworldmap в R (так как я не знаю, как это сделать с помощью ggmap или ggplot2).

Мне нужно отобразить названия стран только для тех стран, которые присутствуют в моем фреймворке, а не для всех европейских стран. Как я могу это сделать? Мой код:

library(RColorBrewer)
#getting colours
colourPalette <- brewer.pal(5,'RdPu')


library(rworldmap)

europe <- data.frame(
  "country" = c("Greece", 
                "France", 
                "Spain",
                "Italy",
                "UK",
                "Finland","Norway","Sweden",
                "Germany",
                "Romania"), 
  "x" = c(2.5, 3, 2.2, 1.8,2.32, 1.99, 2.01, 2.34, 1.88, 2.45))

matched <- joinCountryData2Map(europe, joinCode="NAME", nameJoinColumn="country")





mapParams <- mapCountryData(matched, 
                            nameColumnToPlot="x", 
                            mapTitle="my Titley", 
                            addLegend=FALSE,
                            mapRegion="Europe"
                            ,colourPalette=colourPalette,
                            oceanCol="#404040", missingCountryCol="#A0A0A0")



#adding legend
do.call(addMapLegend
        ,c(mapParams
           ,legendLabels="all"
           ,legendWidth=0.5
           ,legendIntervals="data"
           ,legendMar = 2))

labelCountries()

При использовании labelCountries() печатаются названия всех стран, и они не читаются.

Спасибо


person Fierce82    schedule 16.06.2019    source источник


Ответы (1)


С небольшой помощью this ранее ответьте:

# get the coordinates for each country
country_coord<-data.frame(coordinates(matched),stringsAsFactors=F)

# label the countries
country = c("Greece", 
              "France", 
              "Spain",
              "Italy",
              "UK",
              "Finland","Norway","Sweden",
              "Germany",
              "Romania")

#filter your wanted countrys
country_coord = country_coord[country,]

#insert your labels in plot
text(x=country_coord$X1,y=country_coord$X2,labels=row.names(country_coord))

вы можете добавить метки страны с помощью text, но вы должны заранее извлечь координаты из ваших согласованных координат. Вывод:

сюжет

Вы можете немного поиграть с col = "color" в text, так как некоторые страны практически не читаются. Или, может быть, измените цветовую шкалу на вашей карте

person mischva11    schedule 17.06.2019
comment
Интересный обходной путь, спасибо. Думаю, на данный момент встроенного метода нет. Я попытался поиграть с labelCountries, но мне чего-то не хватало в понимании того, как это работает. - person Fierce82; 17.06.2019