在R中的3D四面体中绘制4D成分

时间:2017-07-10 15:40:19

标签: r composition ternary rgl simplex

我想知道如何在下图中连接点。

我有四个变量的成分数据,其中每行代表一个样本,每个样本由不同比例的四个成分(4列)组成。

可重复的例子:

library(compositions); library(rgl)
TimeSeries <- cbind(runif(10),runif(10),runif(10),runif(10))
TimeSeries <- TimeSeries/rowSums(TimeSeries)
Acomp  <- acomp(TimeSeries)
plot3D(Acomp_TS,  cex=10, col="red",   log=FALSE, coors=T, bbox=F,    scale=F, center=F, axis.col=1, axes=TRUE)  

理想情况下,我想按照它们在数据框中出现的顺序连接点。

我想这可能是用line3d或segments3d(library rgl)之类的东西完成的,但是我看不到如何从Acomp中提取(x,y,z)坐标。

1 个答案:

答案 0 :(得分:0)

您没有名为SET @query = ' SELECT department,'+ replace(replace(@cols,'[','coalesce(['),']','],0)') + ' FROM ( SELECT * FROM #Daysoftheweek ) x PIVOT ( avg(TotalUtilized) FOR DayoftheWeek IN (' + @cols + ') ) p ' 的变量。我想你的意思是Acomp_TS

执行此操作的最佳方法是查看Acomp的来源,并执行其操作。您可能还想向程序包的维护者建议他们应该无形地返回他们计算出来的3D坐标,以方便你想做的事情。

但这是一个可行的黑客:在绘制点之后,读取它们的位置并将它们用作坐标。例如,

plot3D.acomp

这产生了

enter image description here