Как создать карту мира в R со специфическими странами?

Я хотел бы использовать R для создания очень простой карты мира с определенным набором стран, заполненных красным цветом, чтобы указать, что они являются эндемичными по малярии странами.

У меня есть список этих стран в кадре данных, но я изо всех сил пытаюсь наложить их на карту мира.

Я попытался использовать объект wrld_simpl, а также метод joinCountryData2Map в пакете rworldmap.

Я бы прокомментировал этот ответ, чтобы предотвратить добавление возможно избыточного вопроса, но на данный момент у меня недостаточно репутации, извинения за это.

qaru.site/info/347766/...

Мне трудно понять аргументы команды plot() - я задавался вопросом, есть ли просто простой способ рассказать R, чтобы отобразить все NAME страны в моем списке на карте wrld_simpl вместо того, чтобы использовать grepl() и т.д. и т.д.

plot(wrld_simpl, 
     col = c(gray(.80), "red")[grepl("^U", [email protected]$NAME) + 1])

Ответы

Ответ 1

Используя пакет rworldmap, вы можете использовать следующее:

library(rworldmap)

theCountries <- c("DEU", "COD", "BFA")
# These are the ISO3 names of the countries you'd like to plot in red

malDF <- data.frame(country = c("DEU", "COD", "BFA"),
  malaria = c(1, 1, 1))
# malDF is a data.frame with the ISO3 country names plus a variable to
# merge to the map data

malMap <- joinCountryData2Map(malDF, joinCode = "ISO3",
  nameJoinColumn = "country")
# This will join your malDF data.frame to the country map data

mapCountryData(malMap, nameColumnToPlot="malaria", catMethod = "categorical",
  missingCountryCol = gray(.8))
# And this will plot it, with the trick that the color palette first
# color is red

РЕДАКТИРОВАТЬ: добавить другие цвета и включить изображение

## Create multiple color codes, with Burkina Faso in its own group
malDF <- data.frame(country = c("DEU", "COD", "BFA"),
  malaria = c(1, 1, 2))

## Re-merge
malMap <- joinCountryData2Map(malDF, joinCode = "ISO3",
  nameJoinColumn = "country")

## Specify the colourPalette argument
mapCountryData(malMap, nameColumnToPlot="malaria", catMethod = "categorical",
  missingCountryCol = gray(.8), colourPalette = c("red", "blue"))

enter image description here

Ответ 2

Попробуйте использовать пакет googleVis и используйте функции gvisGeoMap

например.

G1 <- gvisGeoMap(Exports,locationvar='Country',numvar='Profit',options=list(dataMode='regions'))

plot(G1)

Ответ 3

    library(maptools)
    data(wrld_simpl)
    myCountries = [email protected]$NAME %in% c("Australia", "United Kingdom", "Germany", "United States", "Sweden", "Netherlands", "New Zealand")
    plot(wrld_simpl, col = c(gray(.80), "red")[myCountries+1])

введите описание изображения здесь