Commit 8bf80732 authored by Kunstler Georges's avatar Kunstler Georges
Browse files

progress on text

parent 68e16c81
......@@ -649,7 +649,7 @@ pred.res.a0$upr <- -pred.res.a0$upr
return(rbind(pred.res.max, pred.res.ar, pred.res.ae, pred.res.al, pred.res.a0))
}
#TODO
#intra
if(intra.TF){
pred.res.a0.intra <- easyPredCI.param(list.res, type = 'alpha0', new.data, alpha, alpha_0 = 'sumBn.intra')
pred.res.a0.intra$Tf <- seq(from = list.var[[1]][['ql.o']],
......@@ -694,9 +694,9 @@ pred.res.rho$Tf <- seq(from = list.var[[1]][['ql.o']],
to = list.var[[1]][['qh.o']],
length.out = 100) - list.var[[1]][['ql.o']]
pred.res.rho$param.type <- 'rho'
pred.res.rho$pred <- exp(pred.res.rho$pred)
pred.res.rho$lwr <- exp(pred.res.rho$lwr)
pred.res.rho$upr <- exp(pred.res.rho$upr)
pred.res.rho$pred <- 1- exp(pred.res.rho$pred)
pred.res.rho$lwr <- 1 - exp(pred.res.rho$lwr)
pred.res.rho$upr <- 1 - exp(pred.res.rho$upr)
new.data.GiGj <- fun.generate.pred.param.kikj.dat( list.sd = list.res$list.sd,
Tf.low = list.var[[1]][['ql']],
......@@ -728,9 +728,9 @@ pred.res.rho$Tf <- seq(from = list.var[[1]][['ql.o']],
to = list.var[[1]][['qh.o']],
length.out = 100) - list.var[[1]][['ql.o']]
pred.res.rho$param.type <- 'rho'
pred.res.rho$pred <- exp(pred.res.rho$pred)
pred.res.rho$lwr <- exp(pred.res.rho$lwr)
pred.res.rho$upr <- exp(pred.res.rho$upr)
pred.res.rho$pred <- 1 - exp(pred.res.rho$pred)
pred.res.rho$lwr <- 1 - exp(pred.res.rho$lwr)
pred.res.rho$upr <- 1 - exp(pred.res.rho$upr)
new.data.GiGj <- fun.generate.pred.param.kikj.dat( list.sd = list.res$list.sd,
......@@ -854,7 +854,8 @@ for (i in traits){
sep = '')]]
list.df[[i]] <- predict.for.one.traits.3params(trait = i,
dir.root, list.temp,
alpha = 0.05, MAT.MAP.TF = MAT.MAP.TF)
alpha = 0.05, MAT.MAP.TF = MAT.MAP.TF,
intra.TF = intra.TF)
list.df[[i]]$traits <- i
}
dat.res <- do.call('rbind', list.df)
......@@ -1331,7 +1332,10 @@ plot.param.mean.and.biomes.fixed <- function(list.res,
col.vec,
pch.vec,
names.bio,
intra.TF = FALSE,
...){
if(!intra.TF) x.line <- -0.63
if(intra.TF) x.line = -0.7
col.vec[2] <- col.vec[1]
biomes.c <- as.character(biomes)
Var <- "Trait indep"
......@@ -1378,7 +1382,7 @@ b <- border.size()
side = 2,
labels = param.names,
cols.vec = col.names[param.vec])
fun.param.descrip(seq.jitter,length(param.vec))
fun.param.descrip(seq.jitter,length(param.vec), x.line)
}
if(i == traits[2]){ mtext('Standardized coefficients', side=1, cex =1.5,
line = 4)}
......@@ -1447,7 +1451,7 @@ rm(out)
gc()
}
fun.mai.plot.param <- function(t, p, first.p = 'alpha0', last.p = 'maxG'){
fun.mai.plot.param <- function(t, p, big.m, small.m, first.p = 'alpha0', last.p = 'maxG'){
if(t == 'Wood density'){
if(p == first.p){
mai.v <- c(0.1, big.m,small.m,0.1)
......@@ -1497,10 +1501,16 @@ fun.plot.all.param <- function(list.res,
small.m = 0.2,
col.vec = fun.col.param(),
MAT.MAP.TF = FALSE,
intra.TF = FASLE
intra.TF = FALSE,
ylim.list = list(maxG = c(-0.75, 0.75), alphae = c(-0.02, 0.009),
alphar = c(-0.013, 0.013), alphal = c(-0.017, 0.007),
alpha0 = c(0.003, 0.016), alpha0.intra = c(0.003, 0.028),
alpha0.inter = c(0.003, 0.028))
){
# predict data
data.param <- fun.pred.BA.l.and.h.all.traits.3params(
traits <- c('Wood.density', 'SLA', 'Max.height')
# predict data
data.param <- fun.pred.BA.l.and.h.all.traits.3params(traits,
model = model,
dir.root = dir.root,
list.res = list.res,
......@@ -1510,19 +1520,17 @@ fun.plot.all.param <- function(list.res,
require(dplyr)
# Layout
m <- matrix(c(1:12), 5, 3)
m <- matrix(c(1:15), 5, 3)
wid <- c(big.m+0.1, small.m+0.1 , 2*small.m+0.1) +
rep((6-big.m-3*small.m-0.3)/3, each= 3)
hei <- c(small.m+0.1, 0.2, 0.2 , 0.2, big.m) +
rep((10-big.m-small.m- 0.5)/5, each= 5)
layout(m, heights=hei, widths= wid )
traits <- c('Wood.density', 'SLA', 'Max.height')
traits.exp <- c(expression(paste('Wood density (mg m', m^-3, ')')),
traits.exp <- list(expression(paste('Wood density (mg m', m^-3, ')')),
expression(paste('Specific leaf area (m', m^2, ' m', g^-1, ')')),
expression(paste('Maximum height (m)')))
names(traits.exp) <- traits
names(traits.exp) <- c('Wood density', 'Specific leaf area', 'Maximum height')
if(!intra.TF){
expr.p.vec <- c(expression(paste0('Trait indep ',alpha[0])),
expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))),
......@@ -1535,9 +1543,10 @@ names.param <- c("Tf","sumTnBn",
names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0')
first.p <- 'alpha0'
}
if(intra.TF){
expr.p.vec <- c(expression(paste0('inter ', alpha[,'0 intra/inter',])),
expression(paste0('inter ', alpha[,'0 intra/inter',])),
expr.p.vec <- c(expression(paste('Trait indep ', alpha['0 intra/inter'])),
expression(paste('Trait indep ', alpha['0 intra/inter'])),
expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))),
expression(paste('Competitive effect ', alpha[e] %*% t[c])),
expression(paste('Tolerance of competition ', alpha[t] %*% t[f])),
......@@ -1548,33 +1557,33 @@ names.param <- c("Tf","sumTnBn",
names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0.inter', 'alpha0.intra')
first.p <- 'alpha0.intra'
}
for (t in c('Wood density', 'Specific leaf area', 'Maximum height')){
for (p in names(expr.p.vec)){
df.t <- data.param[data.param$traits == t, ]
par(mai = fun.mai.plot.param(t, p, first.p = first.p, last.p = 'maxG'))
par(mai = fun.mai.plot.param(t, p, big.m, small.m, first.p = first.p, last.p = 'maxG'))
if(t == 'Wood density'){
if(p == 'maxG'){
fun.plot.param.tf(df = df.t,
param.sel = p,
xlab = traits.exp[t],
col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1)
p = p, names.param = names.param,
xlab = traits.exp[[t]],
col.vec = col.vec,
expr.param = expr.p.vec[p], cex.lab = 1.1,
cex.axis =0.85, cex = 1, ylim = ylim.list[[p]])
}else{
if(p == 'alpha0.inter'){
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p, names.param = names.param,
xaxt= 'n',xlab = NA,
col.param = col.vec[names.param[p]],
col.vec = col.vec,
expr.param = NA, cex.lab = 1.1, cex.axis =0.85, cex = 1, add = TRUE, add.ylab.TF = FALSE)
}else{
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p, names.param = names.param,
xaxt= 'n',xlab = NA,
col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1)
col.vec = col.vec,
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1,
ylim = ylim.list[[p]])
}
}
}
......@@ -1582,24 +1591,28 @@ if(p == 'maxG'){
if(t %in% c('Specific leaf area', 'Maximum height')){
if(p == 'maxG'){
fun.plot.param.tf(df = df.t,
param.sel = p,
xlab = traits.exp[t],
col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
p = p, names.param = names.param,
xlab = traits.exp[[t]],
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE,
cex.lab = 1.1, cex.axis =0.85, cex = 1,
ylim = ylim.list[[p]])
}else{
if(p == 'alpha0.inter'){
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p, names.param = names.param,
xaxt= 'n',xlab = NA,
col.param = col.vec[names.param[p]],
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85,
cex = 1, add =TRUE)
}else{
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p,names.param = names.param,
xaxt= 'n',xlab = NA,
col.param = col.vec[names.param[p]],
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE,
cex.lab = 1.1, cex.axis =0.85, cex = 1,
ylim = ylim.list[[p]])
}
}
}
......@@ -1611,6 +1624,120 @@ if(p == 'maxG'){
fun.plot.trade.param <- function(list.res,
model = 'lmer.LOGLIN.ER.AD.Tf.r.set.species',
dir.root = '.',
data.type = 'simple',
big.m = 0.6,
small.m = 0.2,
col.vec = fun.col.param(),
MAT.MAP.TF = FALSE,
intra.TF = FALSE,
ylim.list = list(maxG = c(-0.75, 0.75), alphae = c(-0.02, 0.009),
alphar = c(-0.013, 0.013), alphal = c(-0.017, 0.007),
alpha0 = c(0.003, 0.016), alpha0.intra = c(0.003, 0.028),
alpha0.inter = c(0.003, 0.028))
){
traits <- c('Wood.density', 'SLA')
# predict data
data.param <- fun.pred.BA.l.and.h.all.traits.3params(traits,
model = model,
dir.root = dir.root,
list.res = list.res,
data.type = data.type,
MAT.MAP.TF = MAT.MAP.TF,
intra.TF = intra.TF)
require(dplyr)
# Layout
m <- matrix(c(1:6), 3, 2)
wid <- c(big.m+0.1, 2*small.m+0.1) +
rep((6-big.m-2*small.m-0.3)/2, each= 2)
hei <- c(small.m+0.1, 0.2, big.m) +
rep((10-big.m-small.m- 0.5)/3, each= 3)
layout(m, heights=hei, widths= wid )
traits.exp <- list(expression(paste('Wood density (mg m', m^-3, ')')),
expression(paste('Specific leaf area (m', m^2, ' m', g^-1, ')')),
expression(paste('Maximum height (m)')))
names(traits.exp) <- c('Wood density', 'Specific leaf area', 'Maximum height')
if(!intra.TF){
expr.p.vec <- c(expression(paste0('Trait indep ',alpha[0])),
expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))),
expression(paste('Competitive effect ', alpha[e] %*% t[c])),
expression(paste('Tolerance of competition ', alpha[t] %*% t[f])),
expression(paste('Maximum growth ', m[1] %*% t[f])))
names(expr.p.vec) <- c('alpha0', 'alphal', 'alphae', 'alphar', 'maxG')
names.param <- c("Tf","sumTnBn",
"sumTfBn", "sumTnTfBn.abs", "sumBn")
names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0')
first.p <- 'maxG'
}
if(intra.TF){
expr.p.vec <- c(expression(paste('Trait indep ', alpha['0 intra/inter'])),
expression(paste('Trait indep ', alpha['0 intra/inter'])),
expression(paste('Similarity ', alpha[l] %*% abs(t[f] - t[c]))),
expression(paste('Competitive effect ', alpha[e] %*% t[c])),
expression(paste('Tolerance of competition ', alpha[t] %*% t[f])),
expression(paste('Maximum growth ', m[1] %*% t[f])))
names(expr.p.vec) <- c('alpha0.intra', 'alpha0.inter', 'alphal', 'alphae', 'alphar', 'maxG')
names.param <- c("Tf","sumTnBn",
"sumTfBn", "sumTnTfBn.abs", "sumBn.inter", "sumBn.intra")
names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0.inter', 'alpha0.intra')
first.p <- 'maxG'
}
for (t in c('Wood density', 'Specific leaf area')){
for (p in c( 'maxG', 'alphar', 'alphae')){
df.t <- data.param[data.param$traits == t, ]
par(mai = fun.mai.plot.param(t, p, big.m, small.m, first.p = first.p, last.p = 'alphae'))
if(t == 'Wood density'){
if(p == 'alphae'){
fun.plot.param.tf(df = df.t,
p = p, names.param = names.param,
xlab = traits.exp[[t]],
col.vec = col.vec,
expr.param = expr.p.vec[p], cex.lab = 1.1,
cex.axis =0.85, cex = 1, ylim = ylim.list[[p]])
}else{
fun.plot.param.tf(df = df.t,
p = p, names.param = names.param,
xaxt= 'n',xlab = NA,
col.vec = col.vec,
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1,
ylim = ylim.list[[p]])
}
}
if(t %in% c('Specific leaf area', 'Maximum height')){
if(p == 'alphae'){
fun.plot.param.tf(df = df.t,
p = p, names.param = names.param,
xlab = traits.exp[[t]],
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE,
cex.lab = 1.1, cex.axis =0.85, cex = 1,
ylim = ylim.list[[p]])
}else{
fun.plot.param.tf(df = df.t,
p = p,names.param = names.param,
xaxt= 'n',xlab = NA,
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE,
cex.lab = 1.1, cex.axis =0.85, cex = 1,
ylim = ylim.list[[p]])
}
}
}
}
}
add.alpha <- function(col, alpha=0.5){
......@@ -1621,34 +1748,58 @@ add.alpha <- function(col, alpha=0.5){
rgb(x[1], x[2], x[3], alpha=alpha))
}
fun.plot.param.tf <- function(df, param.sel, xlab,
col.param, expr.param,
fun.plot.param.tf <- function(df, p, xlab,
col.vec, expr.param,names.param,
add.ylab.TF = TRUE,
cex.lab = 1.3, cex.axis = 1,
cex = 1.3, ...){
df.t <- df[df$param.type == param.sel, ]
cex = 1.3, add = FALSE, ...){
df.t <- df[df$param.type == p, ]
if(!add){
plot(df.t[ , 'Tf'],
df.t[, 'pred'],
xlab = xlab, ylab = NA,
lwd = 3, cex.lab = cex.lab, cex.axis = cex.axis,
col = col.param, ylim = range(df.t[, c('upr', 'lwr')]), type = 'l',...)
col = col.vec[names.param[p]], type = 'l',...)
polygon(c(df.t[, 'Tf'],
rev(df.t[, 'Tf'])),
c(df.t[, 'upr'],
rev(df.t[, 'lwr'])),
col = add.alpha(col.param, 0.5), border = NA)
col = add.alpha(col.vec[names.param[p]], 0.5), border = NA)
}else{
lines(df.t[ , 'Tf'],
df.t[, 'pred'],lwd = 3,col = col.vec[names.param[p]])
polygon(c(df.t[, 'Tf'],
rev(df.t[, 'Tf'])),
c(df.t[, 'upr'],
rev(df.t[, 'lwr'])),
col = add.alpha(col.vec[names.param[p]], 0.5), border = NA)
}
if(add.ylab.TF){
mtext(expr.param,
if(p != 'alpha0.intra'){
mtext(expr.param,
side=2, cex =cex,
line = 2.5, col = col.vec[names.param[p]])
}else{
mtext(expression(paste('Trait indep ', alpha[phantom("0 intra /inter")])),
side=2, cex =cex,
line = 2.5, col = col.param)
line = 2.5, col = col.vec['sumBn'])
mtext(expression(paste(phantom('Trait indep '), phantom(alpha)[paste("0 intra /",phantom("inter"))])),
side=2, cex =cex,
line = 2.5, col = col.vec['sumBn.intra'])
mtext(expression(paste(phantom('Trait indep '), phantom(alpha)[paste(phantom("0 intra /"),"inter")])),
side=2, cex =cex,
line = 2.5, col = col.vec['sumBn.inter'])
}
}
}
## plot only wd and sla
## Plot only wd and sla
fun.plot.wd.sl.param <- function(list.res,
model = 'lmer.LOGLIN.ER.AD.Tf.r.set.species',
dir.root = '.',
col.vec = fun.col.param(),
data.type = 'simple',
big.m = 1.0,
small.m = 0.42,
......@@ -1672,41 +1823,52 @@ require(dplyr)
wid <- c(small.m , big.m) +
rep((6-big.m-small.m)/2, each= 2)
layout(m, heights=wid)
names.param <- c("Tf","sumTnBn",
"sumTfBn", "sumTnTfBn.abs", "sumBn.inter", "sumBn.intra")
names(names.param) <- c('maxG', 'alphae', 'alphar', 'alphal', 'alpha0.inter', 'alpha0.intra')
par(mai=c(0.2, big.m,small.m,0.1), xpd = TRUE)
par(mai=c(0.2, big.m,small.m,0.1))
fun.plot.param.tf(df = filter(data.param,
traits == "Wood density"),
param.sel = 'maxG', xlab = NA, xaxt= 'n',
col.param = "#e41a1c",
ylim = range(filter(data.param,
traits == "Wood density" & param.type == 'maxG')%>% select(upr,lwr)),
p = 'maxG', xlab = NA, xaxt= 'n',names.param = names.param,
col.vec = col.vec,
expr.param = expression(paste('Max growth ',
(m[1] %*% t[f]))))
par(mai=c(big.m , big.m,0.2,0.1), xpd = TRUE)
par(mai=c(big.m , big.m,0.2,0.1))
fun.plot.param.tf(df = filter(data.param,
traits == "Wood density"),
param.sel = 'alphar',
p = 'alphar',names.param = names.param,
ylim = range(filter(data.param,
traits == "Wood density" & param.type == 'alphar')%>% select(upr,lwr)),
xlab = expression(
paste('Wood density (mg m', m^-3, ')')),
col.param = "#4daf4a",
col.vec = col.vec,
expr.param = expression(paste(
'Tolerance of competition ',
(alpha[t] %*% t[f]))))
par(mai=c(0.2, big.m,small.m,0.1), xpd = TRUE)
par(mai=c(0.2, big.m,small.m,0.1))
fun.plot.param.tf(df = filter(data.param,
traits == "Specific leaf area"),
param.sel = 'maxG',xlab = NA, xaxt= 'n',
col.param = "#e41a1c",
p = 'maxG',xlab = NA, xaxt= 'n',names.param = names.param,
ylim = range(filter(data.param,
traits == "Specific leaf area" & param.type == 'maxG')%>% select(upr,lwr)),
col.vec = col.vec,
expr.param = expression(paste('Max growth ',
(m[1] %*% t[f]))))
par(mai=c(big.m , big.m,0.2,0.1), xpd = TRUE)
par(mai=c(big.m , big.m,0.2,0.1))
fun.plot.param.tf(df = filter(data.param,
traits == "Specific leaf area"),
param.sel = 'alphae',
p = 'alphae',names.param = names.param,
xlab = expression(
paste('Specific leaf area (m', m^2, ' m', g^-1, ')')) ,
col.param = "#984ea3",
ylim = range(filter(data.param,
traits == "Specific leaf area" & param.type == 'alphae')%>% select(upr,lwr)),
col.vec = col.vec,
expr.param = expression(paste(
'Competitive effect ',
(alpha[e] %*% t[c]))))
......@@ -1754,7 +1916,7 @@ require(dplyr)
layout(m, heights=hei, widths= wid )
expr.p.vec <- c(expression(rho),
expr.p.vec <- c(expression(1-rho),
expression(kappa[i]/kappa[j]),
expression(G[i]/G[j]))
names(expr.p.vec) <- c('rho', 'kikj', 'GiGj')
......@@ -1808,15 +1970,19 @@ if(t == 'Maximum height'){
if(t == 'Wood density'){
if(p == 'GiGj'){
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p,
ylim = range(filter(df.t,
param.type == 'GiGj')%>% select(upr,lwr)),
xlab = expression(paste(Delta, ' Wood density (mg m', m^-3, ')')),
col.param = col.vec[p],
col.vec = col.vec,
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1)
}else{
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p,
ylim = range(filter(df.t,
param.type == p)%>% select(upr,lwr)),
xaxt= 'n',xlab = NA,
col.param = col.vec[p],
col.vec = col.vec,
expr.param = expr.p.vec[p], cex.lab = 1.1, cex.axis =0.85, cex = 1)
}
}
......@@ -1824,15 +1990,19 @@ if(p == 'GiGj'){
if(t == 'Specific leaf area'){
if(p == 'GiGj'){
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p,names.param = names.param,
xlab = expression(paste(Delta, ' Specific leaf area (m', m^2, ' m', g^-1, ')')),
col.param = col.vec[p],
ylim = range(filter(df.t,
param.type == 'GiGj')%>% select(upr,lwr)),
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
}else{
fun.plot.param.tf(df = df.t,
param.sel = p,
p = p,names.param = names.param,
xaxt= 'n',xlab = NA,
col.param = col.vec[p],
ylim = range(filter(df.t,
param.type == p)%>% select(upr,lwr)),
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
}
}
......@@ -1840,16 +2010,20 @@ if(p == 'GiGj'){
if(t == 'Maximum height'){
if(p == 'GiGj'){
fun.plot.param.tf(df = df.t,
param.sel = p,
param.sel = p,names.param = names.param,
xlab = expression(paste(Delta, ' Maximum height (m)')),
col.param = col.vec[p],
ylim = range(filter(df.t,
param.type == 'GiGj')%>% select(upr,lwr)),
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
}else{
fun.plot.param.tf(df = df.t,
param.sel = p,
param.sel = p,names.param = names.param,
xlab = NA,
xaxt= 'n',
col.param = col.vec[p],
ylim = range(filter(df.t,
param.type == p)%>% select(upr,lwr)),
col.vec = col.vec,
expr.param = expr.p.vec[p], add.ylab.TF = FALSE, cex.lab = 1.1, cex.axis =0.85, cex = 1)
}
}
......@@ -1888,7 +2062,7 @@ require(dplyr)
layout(m, heights=hei, widths= wid )
expr.p.vec <- c(expression(rho),
expr.p.vec <- c(expression(1-rho),
expression(kappa[i]/kappa[j]),
expression(G[i]/G[j]))
names(expr.p.vec) <- c('rho', 'kikj', 'GiGj')
......@@ -1917,25 +2091,31 @@ if(t == 'Maximum height'){
if(t == 'Wood density'){
fun.plot.param.tf(df = df.t,