有没有办法在rworldmap生成的地图上移动国家/地区名称的位置?例如,在下面的示例中,我想移动中美洲国家的名称,以便更容易阅读。
如果没有,我会欢迎有关标记地图的其他方法的建议。谢谢。
library(rworldmap)
df <- NULL
df$country <- c("El Salvador","Mexico","Panama", "Nicaragua", "Costa Rica", "Cuba", "Honduras", "Guatemala", "Venezuela")
df$code<-c("SLV", "MEX", "PAN", "NIC", "CRI", "CUB", "HON", "GTM", "VEN")
df$number<-c(100, 500, 200, 150, 300, 390, 140, 330, 60)
df<-as.data.frame(df)
sPDF <- joinCountryData2Map( df, joinCode = "ISO3", nameJoinColumn = "code")
mapCountryData(sPDF, nameColumnToPlot="number")
sPDFmyCountries <- sPDF[sPDF$NAME %in% df$country,]
mapCountryData(sPDFmyCountries, nameColumnToPlot="number", catMethod="fixedWidth", colourPalette="heat", borderCol="black", mapTitle = ("Made Up Number"))
text(sPDFmyCountries, labels="NAME")
答案 0 :(得分:1)
您可以在空间或标准数据框中创建偏移列,并将apply作为文本标签位置的参数。 (我和上面的评论有同样的问题,所以我只是将spdf转换为常规df):
mapCountryData(sPDFmyCountries, nameColumnToPlot="number", catMethod="fixedWidth", colourPalette="heat", borderCol="black", mapTitle = ("Made Up Number"))
df2=as.data.frame(sPDFmyCountries)
df2$latOffset=4 #4 degree offset
df2$lonOffset=4
text(df2$LON+df2$latOffset, df2$LAT+df2$lonOffset, labels=df2$country)
鉴于您所在国家/地区的排列方式,我不知道您是否会找到一种能够自动整理重叠文本框的解决方案,这些解决方案不会偏离一些较小的国家/地区,因此我认为您可能需要根据自己的喜好调整各个偏移列...
如果你想找到一种自动整理标签的方法,那里似乎有一些资源: https://stats.stackexchange.com/questions/16057/how-do-i-avoid-overlapping-labels-in-an-r-plot