从triangle.plot中提取点云的周长

时间:2017-04-06 20:20:29

标签: r plot colors rgb compositional-data

我从triangle.plot包中ade4得到3点云:

triangle.plot result

这些点来自RGB数据,它们位于对象(RGB0)中,如下所示:

head(RGB0)
      R  G  B
[1,] 87 92 69
[2,] 87 92 69
[3,] 88 93 70
[4,] 88 93 70
[5,] 89 94 71
[6,] 89 94 71
...

每个点云来自其自己的数据集文件:

  • 绿点文件:filehosting.org/file/details/655417/green.txt
  • 黄点文件:filehosting.org/file/details/655383/yellow.txt
  • 红点文件:filehosting.org/file/details/655420/yellow.txt

还有包含数据的triangle.plot的代码:

library(ade4)

data2= as.data.frame(RGB0) 
head(RGB0)  

data2$R <- RGB0[,1]/255     
data2$G <- RGB0[,2]/255
data2$B <- RGB0[,3]/255
head(data2)


triangle.plot <- triangle.plot(data2, clab = 0, cpoi = 2, addmean = F, show = FALSE, addaxes = F, scale = F)
points(triangle.plot, pch = 19, cex = 1, col = nacreHEX)  

我的问题是如何才能获得这3个云的边界,如何将其绘制到triangle.plot

1 个答案:

答案 0 :(得分:0)

您需要设计一个数据框,该数据框首先标识组成员身份,如果您没有组成员身份,那么这是最困难的部分),然后分别在每个组周围绘制凸包(简单部分)。因此,如果“三点云”是单独的文件,那么为什么不编辑您的问题以包括一些数据以用于说明呢? – 17年4月4日在20:32

@ 42感谢您的建议,我将数据切成三个文件(请参阅编辑)。但是我还没有找到一种方法如何将数据周围的凸包绘制到triangle.plot中。使用“ 2列数据”很容易,但是我还没有找到使用“ 3列数据”的方法。 – Pierre-louis Stenger '17 Apr 4'在1:26

三元图实际上只是二维的。您可以在任意两组坐标周围绘制凸包,然后推断出第三组(无维数)。 – 47年4月7日在4:13

是的,这确实是我错过了解这一问题的要点。

进一步说明:三元图提供了3属性数据的显示机制,该机制仅限于100%求和,即合成。因此,可以根据Dirichlet分布对其进行正确建模。