A practical guide to ecological modelling – Chapter 9
## =============================================================================
## R-Code to make figure 9.6 from the book:
## K. Soetaert and P.M.J. Herman, 2009.
## A practical guide to ecological modelling -
## using R as a simulation platform. Springer, 372 pp.
## http://www.springer.com/life+sciences/ecology/book/978-1-4020-8623-6 .
## implemented by Karline Soetaert
## =============================================================================
par(mar = c(2, 2, 2, 2))
# Define the stages
Stagenames <- c("dormant seeds 1yr", "dormant seeds 2yr",
"small rosettes<2.5cm", "medium rosettes 2.5-18.9cm",
"large rosettes>19cm ", "flowering plants")
names <- c("DS 1yr", "DS 2yr",
"R small", "R medium",
"R large", "F")
NumStages <- length(Stagenames)
# Population matrix
A <- matrix(nrow = NumStages, ncol = NumStages, byrow = TRUE,
data = c( 0, 0, 0, 0, 0, 322.38,
0.966, 0, 0, 0, 0, 0 ,
0.013, 0.01, 0.125, 0, 0, 3.448 ,
0.007, 0, 0.125, 0.238, 0, 30.170,
0.008, 0, 0.038, 0.245, 0.167, 0.862 ,
0, 0, 0, 0.023, 0.75, 0 ) )
# curvature of arrows
curves <- A
curves[] <- 0
curves[3,1] <- -0.35
curves[4,6] <- curves[6,4] <- curves[5,6] <- curves[6,5] <- 0.08
curves[3,6]<- 0.35
curves[1,6]<- -0.35
# plot the population matrix
plotmat(A, pos = c(3, 2, 1), curve = curves, name = names,
lwd = 1, box.lwd = 2, my = -0.1, cex.txt = 0.8,
box.cex = 0.8, box.size = 0.08, box.type = "circle", box.prop = 1,
relsize = 0.95, shadow.size = 0.01, self.cex = 0.6,
self.shiftx = c(0, 0, 0.125, -0.12, 0.125, 0), self.shifty = 0)
legend("bottomright", cex = 0.8,
legend = c("DS = dormant seeds", "R = rosettes", "F = flowers"))
legend("bottomleft", ncol = 2, cex = 0.8,
legend = c("small", "medium", "large", "<2.5cm", "2.5-18.9cm", ">19cm"))
mtext(side = 3, "Dipsacus sylvestris", cex = 1.25, line = 0)