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)