3dplot

al<-matrix(0,36,2)
al[,1]<-c(rep(2,9),rep(1,12),rep(0,15))
al[,2]<-c(2,2,1,1,1,0,0,0,0,2,2,2,1,1,1,1,0,0,0,0,0,2,2,2,2,1,1,1,1,1,0,0,0,0,0,0)
sr<-al[,1]*1+al[,2]*1
P<-sr+rnorm(36,0,0.1)

rgl.clear()
rgl.bg(col="white")
x<-cbind(P,al)
d<-dist(x)
stree<-spantree(d)
library(rgl)
plot3d(x)
t<-matrix(0,length(x[,1]),2)
for (i in 2:length(x[,1])){
ki<-c(i,as.numeric(stree$kid[i-1]))
#t[,i]<-c(i,stree$kid[i])
rgl.lines(x[ki,1],x[ki,2],x[ki,3],col="red")
}



tmp1<-sample(1:36)
tmp2<-sample(1:36)
asl<-al
for(i in 1:36) al[i,1]<-asl[tmp1[i],1]
for(i in 1:36) al[i,2]<-asl[tmp2[i],2]
rgl.clear()
rgl.bg(col="white")
x<-cbind(P,al)
d<-dist(x)
stree<-spantree(d)
library(rgl)
plot3d(x)
t<-matrix(0,length(x[,1]),2)
for (i in 2:length(x[,1])){
ki<-c(i,as.numeric(stree$kid[i-1]))
#t[,i]<-c(i,stree$kid[i])
rgl.lines(x[ki,1],x[ki,2],x[ki,3],col="red")
}

最初に関連度高いときのMST描いて、次にそれをパーミテーションしたのを描く par(ask=T)がきかなかった。

意外と3次元だと長さ分かりにくい。