R语言使用RGL绘制3D球体时如何为每个球体添加独立识别标签
实现方案
rgl 包内置的 text3d() 函数可以直接在3D空间指定坐标处渲染文本标签,刚好匹配你的需求:标签位置直接使用球体的中心坐标,也可以加少量偏移避免被球体遮挡,支持自定义数字、字母等任意标签内容。
关键使用示例
你只需要在原有代码绘制完球体、线段的部分之后,添加以下代码即可:
# 方案1:添加数字标签1~11 text3d( x = agg$X1, y = agg$X2, # z轴做少量偏移,避免标签和球体重叠(球体半径为0.5,偏移0.6刚好在球体外侧) z = agg$X3 + 0.6, text = 1:nrow(agg), # 标签内容为数字1到11 col = "white", # 标签颜色,和球体颜色形成对比即可 cex = 1.2, # 字体大小 adj = c(0.5, 0.5) # 文本居中对齐 ) # 方案2:添加大写字母标签A~K # text3d( # x = agg$X1, # y = agg$X2, # z = agg$X3 + 0.6, # text = LETTERS[1:nrow(agg)], # col = "white", # cex = 1.2, # adj = c(0.5, 0.5) # )
常用参数说明
text:自定义标签内容,传入数字向量就是数字标签,传入LETTERS/letters分别对应大小写字母标签,也可以传入自定义的字符向量- 坐标偏移:可以根据需求调整X/Y/Z任意轴的偏移值,避免标签和球体、连线重叠
col:标签颜色,和球体颜色形成强对比即可提升可读性cex:控制标签的字体大小
内容的提问来源于stack exchange,提问作者larry77
相关产品推荐
相关产品推荐

