我想使用rgl库在plot3d图中绘制3D箭头,例如here所述。
但是很明显,arrows3d不是该软件包的一部分,它是否已被弃用,或者未来的音乐会被??arrows3D
返回:
No vignettes or demos or help files found with alias or concept or title matching ‘arrows3D’ using fuzzy matching.
答案 0 :(得分:3)
matlib
包https://cran.r-project.org/package=matlib包含另一个版本:arrows3d
,它采用(x,y,z)坐标矩阵并为每个坐标绘制一个箭头。另一个函数vectors3d
绘制一组向量(来自原点)并提供标记每个。
这些调整为绘制几何3D图表,并具有由3D锥体组成的更好的箭头。
例如,在函数regvec3d
中使用它们,它在平均偏差空间中绘制双变量多元回归模型的三维表示,y ~ x1 + x2
。
以下是使用vectors3d
library(rgl)
library(matlib)
vec <- rbind(diag(3), c(1,1,1))
rownames(vec) <- c("X", "Y", "Z", "J")
open3d()
vectors3d(vec, color=c(rep("black",3), "red"), lwd=2, radius=1/25)
# draw the XZ plane, whose equation is Y=0
planes3d(0, 0, 1, 0, col="gray", alpha=0.2)
vectors3d(c(1,1,0), col="green", lwd=2, radius=1/25)
答案 1 :(得分:2)
最新的rgl
(版本0.95.1470,目前仅适用于R-forge;有关如何获取,请参阅How do I install the latest version of rgl?)在arrow3d()
之后建立了heplots::arrow3d
模型{1}}功能,但扩展了很多。
它可以绘制像heplots
函数(即由线段组成),或作为平面多边形,或多边形的挤出,或多边形的旋转等箭头。 ?arrow3d
帮助示例目前执行此操作:
xyz <- matrix(rnorm(300), ncol = 3)
plot3d(xyz)
arrow3d(xyz[1,], xyz[2,], type = "extrusion", col = "red")
arrow3d(xyz[3,], xyz[4,], type = "flat", col = "blue")
arrow3d(xyz[5,], xyz[6,], type = "rotation", col = "green")
arrow3d(xyz[7,], xyz[8,], type = "lines", col = "black")
arrow3d(spriteOrigin = xyz[9:12,], col = "purple")
产生这个输出:
通常每次调用只会绘制一个箭头,但如果你要求3D精灵(如purple
示例中所示),它可以绘制同一箭头的多个副本。