► Par rapport à DerivEscar2() La fonction R suivante DerivEscar2_1() réalise un graphique
supplémentaire en boites à pattes (boxplot) qui est une façon de résumer graphiquement les distributions
du nombre d'individus en début de génération, par espèce. C'est aussi une bonne illustration de la
"polyvalence" de la fonction grahique plot(...).
DerivEscar2_1 <- function(){
dai <- 1:6 ; gen <- 2
ilot <- c("violet", "blue", "red", "yellow", "green", "black")
PopIlots <- table(rep(ilot, sample(dai, 6, replace = TRUE)))
names(PopIlots) <- c("black", "blue", "green", "red", "violet", "yellow")
while(length(unique(ilot)) > 1){
population <- rep(ilot, sample(dai, 6, replace = TRUE))
ilot <- sample(population, 6)
tablEffEspeces <- table(population)
tab0 <- rep(0, 6)
names(tab0) <- c("black", "blue", "green", "red", "violet", "yellow")
tab0[names(tablEffEspeces)] <- tablEffEspeces
PopIlots <- rbind(PopIlots, tab0)
gen <- gen + 1
}
tab0 <- rep(0, 6)
names(tab0) <- c("black", "blue","green", "red", "violet", "yellow")
tablEffEspeces <- table(ilot)
tab0[names(tablEffEspeces)] <- tablEffEspeces
PopIlots <- rbind(PopIlots, tab0)
rownames(PopIlots) <- paste(rep("generation", gen), 1:gen, sep = "")
# Affichage du tableau des résultats
cat("\nLa dérive génétique a abouti à l'unique espèce :\n",
unique(ilot), "à la génération", gen, "\n\n")
print(PopIlots)
# Représentation graphique en segments de droites
plot(1:gen, PopIlots[ , unique(ilot)], type = "l", col = unique(ilot),
xlab = "Rang de la génération", ylab = "Effectif de l'espèce restante",
main = paste("Évolution de l'effectif de l'espèce", unique(ilot), "\npendant",
gen, "générations en début de génération"))
# Création des variables pour que plot fasse des boxplot, puis réalisation du graphique
# dev.new() # Si on est sous Tinn-R pour une nouvelle fenêtre
# Sous RStudio on peut faire défiler tous les graphiques faits
nLign <- dim(PopIlots)[1] ; nCol <- dim(PopIlots)[2]
y <- PopIlots[, 1] ; for (i in 2:nCol) y <- c(y, PopIlots[, i])
x <- as.factor(
rep(c("black", "blue","green", "red", "violet", "yellow"),
rep(nLign, nCol)))
plot(x, y,
main = paste(
"Distributions* simulées du nombre d'individus",
"\nen début de génération, espèce par espèce",
"\nEspèce restant seule =", unique(ilot)),
xlab = "Espèces", ylab = "Nombre d'individus",
border = levels(x))
}
> DerivEscar2_1()
La dérive génétique a abouti à l'unique espèce :
green à la génération 8
black blue green red violet yellow
generation1 2 3 2 4 6 3
generation2 1 6 4 2 4 2
generation3 0 10 2 6 10 0
generation4 0 0 5 11 1 0
generation5 0 0 2 19 0 0
generation6 0 0 6 15 0 0
generation7 0 0 16 5 0 0
generation8 0 0 6 0 0 0
Hubert RAYMONDAUD 07/12/12
LEGTA LOUIS GIRAUD *
84200 CARPENTRAS page 5 sur 11 DeriveEscargots.odt