25

Rを使用して、マラリア流行国であることを示すために赤い色で塗りつぶされた特定の国のセットを含む非常に基本的な世界地図を生成したいと思います。

データフレームにこれらの国のリストがありますが、世界地図にそれらをオーバーレイするのに苦労しています。

パッケージ内のwrld_simplオブジェクトとjoinCountryData2Mapメソッドを使用してみました。rworldmap

冗長な質問が追加されないように、この回答についてコメントしますが、現時点では十分な評判がありません。お詫び申し上げます。

https://stackoverflow.com/a/9102797/1470099

コマンドに与えられた引数を理解するのに苦労しています-などを使用する代わりに、マップplot()上のリストにあるすべての国の名前をプロットするようにRに指示する簡単な方法があるのではないかと思いました。wrld_simplgrepl()

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

3 に答える 3

26

パッケージを使用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's 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"))

ここに画像の説明を入力してください

于 2012-06-27T18:45:14.397 に答える
14

googleVisパッケージを使用して、gvisGeoMap関数を使用してみてください

例えば

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

plot(G1)
于 2012-06-27T13:19:07.907 に答える
11
    library(maptools)
    data(wrld_simpl)
    myCountries = wrld_simpl@data$NAME %in% c("Australia", "United Kingdom", "Germany", "United States", "Sweden", "Netherlands", "New Zealand")
    plot(wrld_simpl, col = c(gray(.80), "red")[myCountries+1])

ここに画像の説明を入力してください

于 2017-09-12T10:03:13.873 に答える