Chapter 3: Visualization of trees
Figure 1
N<-c(32,32)
eg<-sim.data(type="mulmod",N=N)
lf<-leafsfirst(eg)
ngrid<-4
lf.redu<-treedisc(lf,eg,ngrid=ngrid)
lf.plot<-lf.redu
lf.plot$level<-c(0,1,1,1,2,2,3)
# frame 1
plottree(lf.plot,modelabel=FALSE,axes=FALSE)
# frame 2
stepsi<-lf$maxdis/(ngrid+1)
rad<-seq(stepsi,lf$maxdis-stepsi,stepsi)
roundrad<-round(rad,digits=3)
dm<-draw.pcf(eg)
contour(dm$x,dm$y,dm$z,levels=roundrad,drawlabels=FALSE,axes=FALSE)
Figure 2
N<-c(32,32)
eg<-sim.data(type="mulmod",N=N)
lf<-leafsfirst(eg)
ngrid<-4
lf.redu<-treedisc(lf,eg,ngrid=ngrid)
lf.plot<-lf.redu
lf.plot$level<-c(0,1,1,1,2,2,3)
info<-matrix("",length(lf.plot$level),1)
for (i in 1:length(lf.plot$level)){
info[i]<-paste(as.character(round(lf.plot$center[1,i],digits=1)),
as.character(round(lf.plot$center[2,i],digits=1)))
}
plottree(lf.plot,modelabel=TRUE,ptext=0.3,axes=FALSE,info=info,infopos=-0.2,
xmarginright=0.1)
Figure 3
N<-c(32,32)
eg<-sim.data(type="mulmod",N=N)
lf<-leafsfirst(eg)
ngrid<-4
lf.redu<-treedisc(lf,eg,ngrid=ngrid)
lf.plot<-lf.redu
lf.plot$level<-c(0,1,1,1,2,2,3)
# frame 1
plotbary(lf.plot,ptext=0.2,modelabel=TRUE)
# frame 2
plotbary(lf.plot,coordi=2,ptext=0.2,modelabel=TRUE)
Figure 4
# frame 1
a<-1
low<-0.05
end<-2
n<-1000
step<-(end-low)/n
curve<-matrix(0,n,2)
level<-matrix(0,n,1)
for (i in 1:n){
r<-low+i*step
phi<-a/r
curve[i,1]<-r*cos(phi)
curve[i,2]<-r*sin(phi)
level[i]<-r
}
col<-"red"
matplot(curve[,1],curve[,2],type="l",xlim=c(-1.5,1.5),ylim=c(-1,1),col=col,
xlab="coordinate 1", ylab="coordinate 2")
i0<-floor(n/34)
low<-0.4
end<-3
n2<-1000
step<-(end-low)/n2
curve2<-matrix(0,n2,2)
level2<-matrix(0,n2,1)
for (i in 1:n2){
r<-low+i*step
phi<-1/r
curve2[i,1]<-curve[i0,1]+r*cos(phi)-low*cos(1/low)-i/n2
curve2[i,2]<-curve[i0,2]+r*sin(phi)-low*sin(1/low)-i/n2
level2[i]<-r
}
col2<-"blue"
matplot(curve2[,1],curve2[,2],type="l",add=TRUE,col=col2)
i0<-floor(n2/30)
low<-0.4
end<-3
n3<-1000
step<-(end-low)/n3
curve3<-matrix(0,n3,2)
level3<-matrix(0,n3,1)
for (i in 1:n3){
r<-low+i*step
phi<-1/r
curve3[i,1]<-curve2[i0,1]+r*cos(phi)-low*cos(1/low)-i/n3/2
curve3[i,2]<-curve2[i0,2]+r*sin(phi)-low*sin(1/low)-i/n3/2
level3[i]<-r
}
col3<-"green"
matplot(curve3[,1],curve3[,2],type="l",add=TRUE,col=col3)
i0<-floor(n/16)
low<-0.4
end<-3
n4<-1000
step<-(end-low)/n4
curve4<-matrix(0,n4,2)
level4<-matrix(0,n4,1)
for (i in 1:n4){
r<-low+i*step
phi<-1/r
curve4[i,1]<-curve[i0,1]-r*cos(phi)+low*cos(1/low)
curve4[i,2]<-curve[i0,2]-r*sin(phi)+low*sin(1/low)
level4[i]<-r
}
col4<-"orange"
matplot(curve4[,1],curve4[,2],type="l",add=TRUE,col=col4)
text(0.5,0.9,"A")
text(1,0.73,"B")
text(1.1,0.3,"C")
text(-1,-0.65,"D")
# frame 2
# level plot, coordinate 1
coordi<-1
dendat<-curve
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
plot(dendat[,1],level,ylab="level",xlab="coordinate 1",type="l",
col=col,xlim=c(-1.5,1.5),log="y")
dendat<-curve2
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
matplot(dendat[,coordi],level,ylab="level",xlab="coordinate 1",type="l",
add=TRUE,col=col2,xlim=c(-1.5,1.5))#,ylim=c(0,25))
dendat<-curve3
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
matplot(dendat[,coordi],level,ylab="level",xlab="coordinate 1",type="l",
add=TRUE,col=col3,xlim=c(-1.5,1.5))#,ylim=c(0,25))
dendat<-curve4
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
matplot(dendat[,coordi],level,ylab="level",xlab="coordinate 1",type="l",
add=TRUE,col=col4,xlim=c(-1.5,1.5))#,ylim=c(0,25))
text(0.0,0.72,"A")
text(0.1,0.55,"B")
text(0.5,0.55,"C")
text(-1.2,1.85,"D")
# frame 3
# level plot, coordinate 2
coordi<-2
dendat<-curve
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
plot(dendat[,coordi],level,ylab="level",xlab="coordinate 2",type="l",
col=col,xlim=c(-1.5,1.5),log="y")
dendat<-curve2
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
matplot(dendat[,coordi],level,ylab="level",xlab="coordinate 2",type="l",
add=TRUE,col=col2,xlim=c(-1.5,1.5))#,ylim=c(0,25))
dendat<-curve3
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
matplot(dendat[,coordi],level,ylab="level",xlab="coordinate 2",type="l",
add=TRUE,col=col3,xlim=c(-1.5,1.5))#,ylim=c(0,25))
dendat<-curve4
lenni<-dim(dendat)[1]
level<-matrix(0,lenni,1)
for (i in 1:lenni) level[i]<-sqrt(sum(dendat[i,]^2))
matplot(dendat[,coordi],level,ylab="level",xlab="coordinate 2",type="l",
add=TRUE,col=col4,xlim=c(-1.5,1.5))#,ylim=c(0,25))
text(1.1,1.5,"A")
text(0.5,1.5,"B")
text(0.27,0.7,"C")
text(-0.8,1,"D")
Figure 5
N<-c(32,32)
eg<-sim.data(type="mulmod",N=N)
lf<-leafsfirst(eg)
ngrid<-4
lf.redu<-treedisc(lf,eg,ngrid=ngrid)
lf.plot<-lf.redu
lf.plot$level<-c(0,1,1,1,2,2,3)
info<-matrix("",length(lf.plot$level),1)
for (i in 1:length(lf.plot$level)){
info[i]<-as.character(round(lf.plot$volume[i],digits=1))
}
plottree(lf.plot,modelabel=TRUE,ptext=0.3,axes=FALSE,info=info,infopos=-0.5,
xmarginright=0.1)
Figure 6
N<-c(32,32)
eg<-sim.data(type="mulmod",N=N)
lf<-leafsfirst(eg)
ngrid<-4
lf.redu<-treedisc(lf,eg,ngrid=ngrid)
lf.plot<-lf.redu
lf.plot$level<-c(0,1,1,1,2,2,3)
# frame 1
plotprof(lf.plot,ptext=0.2)
# frame 2
plotvolu(lf.plot,ptext=0.2)
Figure 7
n<-200
seed<-5
dendat<-sim.data(type="mulmod",n=n,seed=seed)
N<-c(32,32)
h<-0.28
pcf<-pcf.kern(dendat,h,N)
lst<-leafsfirst(pcf)
lsta<-treedisc(lst,pcf,ngrid=120)
# frame 1
plottree(lsta,ptext=0.003)
# frame 2
plotvolu(lsta,ptext=0.003,modelabel=TRUE)