2

Rに関する質問があります。数値に基づいて、地図上のさまざまな国の地域に色を付けようとしています。今、私はすべての国の値を持っていないので、それらのいくつかは空になります.

Year    Country       Numeric
2009    Afghanistan   

このような。>5、5-10などの特定のレベルに基づいて値を取得すると、それらを異なる色で塗りつぶしたいと思います。Rでそれを行うにはどうすればよいですか? 私はこれにかなりの時間を費やしてきましたが、大きな前進はありませんでした。

世界地図を埋めることはできますが、持っているデータを操作することはできません。

> p <- ggplot(world, aes(long,lat,group=group)) + 
  geom_polygon(fill="darkgreen",colour="white") +
  theme(panel.background = element_rect(fill = "lightsteelblue2"))

アドバイスやヒントをいただければ幸いです。

4

3 に答える 3

3

rworldmap を使用できます (これには、スーダンなどを含み、ソビエト連邦などを除く最新のマップがあるという利点があります)。マップは 3 つの解像度で利用できます (デフォルトは、グローバル マップに適した最も粗い解像度です。

library(rworldmap)

#example data including an NA
country <- c('Afghanistan','Albania','Algeria','Andorra','Angola','Antigua and Barbuda')
data <- c(NA, 8.53, 8.64, 21.25, 10.08, 9.07)

dF <- data.frame(country=country, data=data)

#join data to a map to create a spatialPolygonsDataFrame
sPDF <- joinCountryData2Map(dF, joinCode='NAME', nameJoinColumn='country')

#default map (see rworldmap documentation for options e.g. catMethod, numCats, colourPalette, mapRegion)
#missingCountryCol used for NA and countries not in the join file
mapCountryData(sPDF, nameColumnToPlot='data', missingCountryCol='dark grey')

rworldmap プロット

于 2013-10-14T19:17:16.097 に答える
1

これは基本的に、必要なことを解決するために使用したコードです。

library(xlsx)
library(maps)
library(maptools)
library(mapproj)
library(mapdata)
library(rworldmap)
library(countrycode)

d <- read.xlsx("health_expenditure.xlsx",2)
d.df <- data.frame(d)
d.sub <- subset(d.df,Year=="2009")
w4 <- data.frame(d.sub$Country,data=d.sub$Numeric.Value)
colnames(w4)[1] <- "country"
w4$breaks <- cut(w4$data, 5)
w4$code <- countrycode(w4$country,"country.name","iso3c")
sPDF <- joinCountryData2Map(w4,joinCode="ISO3",nameJoinColumn="code")
par(mai=c(0,0,0.2,0),xaxs="i",yaxs="i")
mapDevice()
mapCountryData(mapToPlot=sPDF, nameColumnToPlot="breaks",missingCountryCol="white",oceanCol="lightsteelblue2",colourPalette="heat",mapTitle="Health Expenditure")

2009年の医療費

于 2013-10-15T08:09:39.907 に答える