我需要在“ compositions” R包中使用arrow3D()才能在3D图中绘制许多箭头。但是,尽管arrow3d()可以采用两个矩阵并将所有箭头绘制在一起,但它不能正确管理颜色向量。因此,我需要编写一个循环以正确绘制每个箭头的正确颜色。但是,这太慢了。下面是一个可重现的示例。显然,左侧的图具有错误颜色的箭头。 任何有助于加快速度的帮助将不胜感激。 最好 保罗
library(compositions)
library(rgl)
g1<- cbind(rnorm(100,1,2),rnorm(100,1,2),rnorm(100,1,2))
g2<- cbind(rnorm(100,1,2),rnorm(100,5,2),rnorm(100,1,2))
g3<- cbind(rnorm(100,1,2),rnorm(100,7,2),rnorm(100,1,2))
x<-rbind(g1,g2,g3)
cols<-rep(1:3,each=100)
x0 <- x+13
mfrow3d(1,2,sharedMouse = T)
spheres3d(x,col=cols,radius=0.2)
spheres3d(x0,col=cols,radius=0.2)
arrows3D(x0,x,col=cols,length=0.1)
next3d()
spheres3d(x,col=cols,radius=0.2)
spheres3d(x0,col=cols,radius=0.2)
for(i in 1:nrow(x)){
arrows3D(x0[i,],x[i,],col=cols[i],length=0.1)
}