标记plot3d指向它们的坐标

时间:2017-01-26 14:47:09

标签: r

我在rgl库中使用plot3d绘制了三维中的多个点。点坐标存储在三个向量xyz中。我想用它的坐标来标注图中的每个点,i。即(x, y, z)

使用text3d我必须从坐标向量创建标签字符串向量。到目前为止,我找到的唯一解决方案是循环遍历坐标向量:

library(rgl);

x = c(1, 2, 3)
y = c(4, 5, 6)
z = c(7, 8, 9)
label_vector = 1:3

for (i in 1:3) {
  l = paste("(", x[i], y[i], z[i], ")", collapse=" ")
  label_vector[i] = l
}

plot3d(x, y, z)
text3d(x, y, z, label_vector)

有更优雅的方法吗?理想情况下,但不一定是(x, y, z),而不是我示例中的( x y z )格式。

2 个答案:

答案 0 :(得分:1)

pull适用于矢量。来自origin

  

如果参数是向量,则它们是逐个连接的   给出一个字符向量结果。

因此,您只需运行一行

即可生成commit
paste

答案 1 :(得分:1)

我认为这会给你更清晰的输出

library(rgl);
x = c(1, 2, 3)
y = c(4, 5, 6)
z = c(7, 8, 9)

label_vector <- paste0("[",x,",",y,",",z,"]")
plot3d(x, y, z, col= "red" , type ="s", radius=0.02)
text3d(x, y, z, label_vector,adj=c(-0.25,0))

谢谢