R 要在地图上绘制的条形图

R 要在地图上绘制的条形图,r,dictionary,plot,rworldmap,R,Dictionary,Plot,Rworldmap,我想在地图上绘制条形图,如本页所示: 我使用了以下数据和代码,但它不起作用 ddf = read.table(header=T, sep=",", text=" country, val1, val2, val3 Nigeria,5,10,8 China,8,12,20 Brazil,15,9,20 Italy,9,25,5 Australia,15,5,25 ") require (rworldmap) sPDF <- joinCountryData2Map(ddf , j

我想在地图上绘制条形图,如本页所示:

我使用了以下数据和代码,但它不起作用

ddf = read.table(header=T, sep=",", text="
country, val1, val2, val3
Nigeria,5,10,8
China,8,12,20
Brazil,15,9,20
Italy,9,25,5
Australia,15,5,25
")

require (rworldmap)

sPDF <- joinCountryData2Map(ddf
    , joinCode = "NAME"
    , nameJoinColumn = "country"
    , verbose = TRUE)

mapBars( sPDF, 
       , nameZs=c(ddf$val1, ddf$val2, ddf$val3)
       , symbolSize=4 )
ddf=read.table(header=T,sep=“,”,text=)
国家,val1,val2,val3
尼日利亚,5,10,8
中国,8,12,20
巴西,15,9,20
意大利,9,25,5
澳大利亚,15,5,25
")
require(rworldmap)

sPDF您可以尝试使用子批次:

# ...
plot(getMap())
df <- merge(x=ddf, y=sPDF@data[sPDF@data$ADMIN, c("ADMIN", "LON", "LAT")], by.x="country", by.y="ADMIN", all.x=TRUE)
require(TeachingDemos)
for (i in 1:nrow(df)) 
  subplot(barplot(height=as.numeric(as.character(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))
legend("topright", legend=names(df[, 2:4]), fill=rainbow(3))
#。。。
绘图(getMap())

df实际上您需要将名称传递给参数namez,即
namez=c('val1','val2','val3')
。不管怎样,mapBars绘制了一个垂直条,将其划分为3个值,而不是并排绘制3个可变条…谢谢。它起作用了。但是,有没有办法把这些条并排放在一起,比如“除此之外=真的”?它不起作用。在最后一行之后,我得到了这个错误:par中的错误(plt=c(xyx,xyy),new=TRUE):为图形参数“plt”指定的值无效,我无法重现。请在没有参数的情况下尝试。请参阅上面我的初始帖子中的编辑。我已经放了一个错误的截图。你的图表正是我想要的。对不起,我无法复制它。我在Win7 x64上,教Emos 2.9,R版本3.0.2。也许更新会有帮助?我在windows7*32和64位的R版本3.1.0中试过。我希望我使用的是正确的代码。我把我的代码放到sPDF上