我正在使用以下代码在地图上绘制条形图,如下所示:Bars to plotted over map
ddf = read.table(header=T, sep=",", text="
country, val1, val2, val3
Nigeria,5,10,8
China,25,12,20
Brazil,50,9,20
Italy,75,25,5
Australia,100,5,25
")
ddf = structure(list(country = structure(c(5L, 3L, 2L, 4L, 1L), .Label = c("Australia",
"Brazil", "China", "Italy", "Nigeria"), class = "factor"), val1 = c(5L,
25L, 50L, 75L, 100L), val2 = c(10L, 12L, 9L, 25L, 5L), val3 = c(8L,
20L, 20L, 5L, 25L)), .Names = c("country", "val1", "val2", "val3"
), class = "data.frame", row.names = c(NA, -5L))
require (rworldmap)
sPDF <- joinCountryData2Map(ddf
, joinCode = "NAME"
, nameJoinColumn = "country"
, verbose = TRUE)
plot(getMap())
require(TeachingDemos)
df <- cbind(ddf, sPDF@data[sPDF@data$ADMIN %in% ddf$country, c("LON", "LAT")])
for (i in 1:nrow(df))
subplot(barplot(height=unlist(df[i, 2:4], use.names=F),
axes=F,
col=rainbow(3), ylim=range(df[,2:4])),
x=df[i, 'LON'], y=df[i, 'LAT'], size=c(.3, .3))
条形图绘制得非常好,但大小不对应。情节如下所示(注意最高的第一条在尼日利亚而不是澳大利亚和巴西的第一条应该比中国大):