在R语言绘制的世界地图上为坐标点添加标签的实现方法
给世界地图上的坐标点添加标签
嘿,这事儿超简单!你只需要在现有代码里加一行text()函数,就能给每个红色点配上对应的标签了。我给你分两种情况写好代码,你按需选择就行:
1. 添加cities$id对应的名称标签
直接用cities$id作为标签内容,调整位置和样式避免遮挡:
library(maps) cities<-read.csv("cities.csv", header=T) map(database="world") points(x = cities$lon, y = cities$lat, col = "red", pch=20) # 添加名称标签 text( x = cities$lon, y = cities$lat, labels = cities$id, pos = 4, # 标签放在点的右侧 cex = 0.8, # 字体大小 col = "blue" # 标签颜色 )
2. 添加数字序号标签
如果想要用1、2、3这类数字标签代替名称,只需要把labels参数换成序号即可:
library(maps) cities<-read.csv("cities.csv", header=T) map(database="world") points(x = cities$lon, y = cities$lat, col = "red", pch=20) # 添加数字标签 text( x = cities$lon, y = cities$lat, labels = 1:nrow(cities), # 生成1到n的序号 pos = 3, # 标签放在点的上方 cex = 0.8, col = "darkgreen" )
小技巧
如果标签和红点重叠,除了调整pos参数(1=下方,2=左侧,3=上方,4=右侧),还可以给坐标加个小偏移,比如:
text(x = cities$lon + 1.5, y = cities$lat + 0.5, labels = cities$id, cex = 0.8)
这样标签就会稍微错开点,显示更清晰。
内容的提问来源于stack exchange,提问作者Eniale
相关产品推荐
相关产品推荐

