首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rworldmap中国家名称的移动位置

Rworldmap中国家名称的移动位置
EN

Stack Overflow用户
提问于 2015-06-04 15:42:48
回答 1查看 430关注 0票数 2

有没有办法在用rworldmap生成的地图上移动国家名称的位置?例如,在下面的例子中,我想移出中美洲国家的名字,使它们更容易阅读。

如果不是,我会欢迎关于地图标签的替代方法的建议。谢谢。

代码语言:javascript
复制
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")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-04 18:15:45

您只需在空间或标准数据中创建一个偏移量列,然后应用is作为文本标签位置的参数。(我的问题与上面的评论相同,所以我只是将spdf转换为一个常规的df):

代码语言:javascript
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30648343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档