首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用坐标标记plot3d点

用坐标标记plot3d点
EN

Stack Overflow用户
提问于 2017-01-26 14:47:09
回答 2查看 465关注 0票数 0

我使用rgl库中的plot3d绘制了一些三维点。点坐标存储在xyz三种矢量中。我想用它的坐标(即(x, y, z) )对图中的每一点进行注释。

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

代码语言:javascript
复制
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 )格式中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-26 16:20:25

paste工作在向量上。来自?paste

如果参数是向量,则按项连在一起给出字符向量结果.

因此,只需运行一行就可以生成label_vector

代码语言:javascript
复制
label_vector = paste( "("  , x,  ", " , y ,  ", " , z , ")", sep = "")
票数 1
EN

Stack Overflow用户

发布于 2017-01-26 16:20:59

我想这会给你更清洁的输出

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

谢谢

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

https://stackoverflow.com/questions/41876086

复制
相关文章

相似问题

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