我在rgl库中使用plot3d
绘制了三维中的多个点。点坐标存储在三个向量x
,y
和z
中。我想用它的坐标来标注图中的每个点,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 )
格式。
答案 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))
谢谢