Как создать карту мира в 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])
![введите описание изображения здесь]()