Dernière mise à jour : 27-12-2019
\newpage
Il s'agit d'un tuto pour mes fonctions perso, réunnies dans le package au doux sobriquet de Renaudpack2
Depuis peu l'installation est possible via Github, c'est ultra simple en utilisant une fonction du package devtools
, qu'il faut donc potentiellement installer si ce n'est déjà fait :
install.packages("devtools") #? ne faire que si vous n'avez jamais installé devtools library(devtools) devtools::install_github("RenaudJau/Renaudpack2")
install.packages("devtools") #? ne faire que si vous n'avez jamais install? devtools library(devtools) devtools::update_packages("Renaudpack2")
Comme n'importe quel package, avec library
:
library(Renaudpack2)
Si jamais il y a un message d'erreur du style de l'impression ?cran ci-apr?s :
Je ne sais pas encore d'où ça vient, mais en redémarrant R Session > Restart R
ou Ctrl+Shift+F10
, et en refaisant library(Renaudpack2)
?a semble fonctionner.
\newpage
Pour les besoins de ce tuto, on créé des fausses données :
biomasse<-c(rnorm(35,20,5),rnorm(35,15,3),rnorm(35,5,3)) traitement<-factor(rep(c("T1","T2","T3"),each=35))
barres.plot
Le graphique de base :
barres.plot(biomasse,traitement)
\newpage
Il y a plusieurs choses que l'on peut modifier pour personaliser son graphique :
changer le type d'erreur représentée
ajouter des lettres d'un test post-hoc
changer des param?tres classiques de la fonction barplot
changer l'ordre des modalit?s (?a ?a n'est pas sp?cifique ? la fonction barres.plot
)
on peut aussi modifier l'axe des abscisses (cf les arguments las.x
, cex.x
et labels.x
de la fonction barres.plot.beside
expliquée plus tard.
par(mfrow=c(2,2)) #pour avoir 4 graphiques sur une m?me fen?tre barres.plot(biomasse,traitement,ecart=sd) #erreur standard par d?faut, ici ?cart-type barres.plot(biomasse,traitement,lettres=c("a","ab","b")) barres.plot(biomasse,traitement,lettres=c("a","ab","b"), col=c("cadetblue","gold","orange"), xlab="Traitements herbicides",ylab="Biomasse",font.lab=3, main="Efficacite des traitement") traitement2<-factor(traitement,levels=c("T3","T1","T2")) barres.plot(biomasse,traitement2)
\newpage
anovLetters
Si vous ne voulez pas vous embêter à calculer vous même les lettres des tests post-hoc, et si et uniquement si vous ?tes dans les conditions d'utilisation d'une ANOVA ? un facteur, alors on peut faire ?a :
anov<-aov(biomasse~traitement) summary(anov)
OK, il y a un effet significatif, du coup anovLetters
renvoie la liste des lettres...
lettresPH<-anovLetters(VAR = biomasse,FAC = traitement) lettresPH
...que l'on peut utiliser directement sur barres.plot
:
barres.plot(biomasse,traitement,lettres = lettresPH)
*Note : possibilité de changer le seuil alpha en utilisant l'argument ALPHA
.
\newpage
barres.plot.beside
Pour les besoins de ce tuto, on cr?? des fausses donn?es, avec 2 facteurs, l'?ge et le sexe, et une variable, la taille :
Age=factor(rep(c(2,10,20,30),each=10)) Sexe=factor(rep(rep(c("Homme","Femme"),5),4)) Taille=c(rnorm(5,60,7),rnorm(5,55,7),rnorm(5,145,15),rnorm(5,129,15),rnorm(5,175,15), rnorm(5,165,15),rnorm(5,175,15),rnorm(5,165,15))
En gros ?a donne ?a :
library(knitr) kable(head(data.frame(Age,Sexe,Taille)))
Le graphique de base :
barres.plot.beside(Taille,Sexe,Age)
\newpage
On peut aussi modifier quelques petits trucs :
barres.plot.beside(Taille,Age,Sexe,col=c("burlywood1","darkseagreen3"))
Attention, les lettres et ?toiles sont ? d?finir soit m?me, c-?-d apr?s tests statistiques, ici pour l'exemple, c'est de l'al?atoire...), et avec des couleurs simples (mais moches...)
barres.plot.beside(Taille,Sexe,Age,POSI="bottom", lettres=c("a","b","c","c","a","b","c","c"), etoiles=c("*","***"),ylab="Taille (cm)",col=2:5)
\newpage
On peut aussi modifier l'axe des abscisses :
las.x
et la taille avec cex.x
:barres.plot.beside(Taille,Age,Sexe,las.x = 2, cex.x = 0.6)
labels.x
: barres.plot.beside(Taille,Age,Sexe,labels.x = c("2 ans","10 ans","20 ans","30 ans"))
Attention, changer les noms ne veut pas dire qu'on change l'ordre des facteurs.. ne pas écrire n'importe quoi..
\newpage
colorRampPalette
et une l?gendepar(mfrow=c(1,2)) coul<-c(colorRampPalette(colors=c("olivedrab1", "grey22"))(4)) barres.plot.beside(Taille,Sexe,Age,POSI="bottom", lettres=c("a","b","c","c","a","b","c","c"), etoiles=c("*","***"),col=coul,ylab="Taille (cm)") plot(1,type="n",axes = F,ann = F) legend("topleft",levels(Age),fill=coul,bty="n")
par(mfrow=c(1,2)) coul2<-c(colorRampPalette(colors=c("lightgoldenrod1", "gold4"))(4), colorRampPalette(colors=c("salmon", "firebrick4"))(4)) barres.plot.beside(Taille,Sexe,Age,POSI="bottom", lettres=c("a","b","c","c","a","b","c","c"), etoiles=c("*","***"),col=coul2,ylab="Taille (cm)") plot(1,type="n",axes = F,ann = F) legend("topleft",paste(rep(levels(Sexe),each=length(levels(Age))), rep(levels(Age),2),sep=" "),fill=coul2,bty="n")
\newpage
Tableau_recap
Cette fonction n'est pas graphique, elle donne les informations de barres.plot
sous forme d'un tableau. Elle a peu d'utilit? en dehors d'un document Rmarkdown.
Tableau_recap(VAR = biomasse,FAC = traitement,ROUND = 2)
Pour que ce soit plus joli, il est cosneill? d'utiliser la fonction kable
du package knitr
(pour l'installer : install.packages("knitr")
).
kable(Tableau_recap(VAR = biomasse,FAC = traitement,ROUND = 2))
Si on fait un test posthoc, on peut rajouter les lettres dans le tableau :
anov<-aov(biomasse~traitement) summary(anov) TukeyHSD(anov) #les lettres sont donc a, b et c : kable(Tableau_recap(VAR = biomasse,FAC = traitement,ROUND = 2, LETTRES = c("a","b","c")))
\newpage
Time.factor.plot
Pour les besoins de ce tuto, on cr?? des fausses donn?es :
tim<-rep(c(1:4),each=6) fac<-factor(rep(rep(c("A","B"),each=3),4)) vari<-c(rnorm(3,5,2),rnorm(3,3,2),rnorm(3,3,2),rnorm(3,8,2), rnorm(3,8,2),rnorm(3,10,2),rnorm(3,16,2),rnorm(3,12,2))
En gros ?a donne ?a :
kable(head(data.frame(tim,fac,vari)))
Utilisation de la fonction : Pourquoi ce message d'erreur? Bonne question.. ? r?soudre..
Time.factor.plot(tim,fac,vari,etoiles=c("*","***","","***"), pch = c(15,16),couleur = c("darkolivegreen","firebrick"), lty = c(1,2))
Couleur_continue
et modif_coul
Couleur_continue
permet de transformer une variable en palette de couleur, utile pour ajouter une 'dimension' ? un plot en 2D
Par exemple, si on a des donn?es (fausses ici..) avec la couverture v?g?tale en fonction de l'altitude, et une information sur la taille des plantes :
taille<-c(89.2,18,40.1,90.6,86.0,83.9,90.6,84.9,56,88.4,74.1,65.6, 49.0,33.0,22.8,16.3,11.2,9.7,10,6.8,36,2.9,7.8,8.5,5.9,2.9,0.2,28,11.5,15.7) recouvrement<-c(99,98,99,96,96,96,96,92,92,93,90,95,90,85,80,71,75,63, 54,49,36,21,7,12,19,32,46,60,71,88) altitude<-c(467,1257,1955,2287,1920,1397,1002,1403,1816,2257,2438,2641, 2821,2287,1961,2292,2624,2327,2630,2769,2839,2787,2752,2385, 2141,2037,1688,1484,1554,1374) kable(head(data.frame(taille,recouvrement,altitude)))
On peut cr?er une couleur pour chaque valeur de taille (ici avec des couleurs plus froides pour les tailles les plus petites) :
coul_taille<-Couleur_continue(VAR = taille,COLORS = c("cadetblue","firebrick")) coul_taille
Ces couleurs (en code h?xad?cimal) peuvent ?tre utilis?es dans un graphique, avec la possibilit? de changer les couleurs comme on veut :
par(mfrow=c(1,2)) plot(x = altitude, y = recouvrement, pch=16, cex=2, col=coul_taille) plot(x = altitude, y = recouvrement, pch=16, cex=2, col=Couleur_continue(taille,COLORS=c("Orange","Green")))
\newpage
La fonction modif_coul
permet de modifier une couleur existante :
Par exemple, en partant de la couleur cadetblue
(qui est un bleu pastel), on peut :
modifier la saturation, sous 0.5 ?a d?sature, au dessus, ?a sature
modifier la brillance, sous 0.5 ?a fonce, au dessus, ?a ?claircit
modifier la teinte, ?a tourne en rond..
modifier la transparence sous 1, ?a devient transparent
par(mfrow=c(3,2)) plot(x = altitude, y = recouvrement, pch = 16, cex = 8, col = "cadetblue", main = 'col = "cadetblue"') plot(1,type="n",axes = F,ann = F) #juste pour un graphique vide.. plot(x = altitude, y = recouvrement, pch = 16, cex = 8, col = modif_coul(COULEUR = "cadetblue",mods = 0.2), main = "mods = 0.2") plot(x = altitude, y = recouvrement, pch = 16, cex = 8, col = modif_coul(COULEUR = "cadetblue",modv = 0.9), main = "modv = 0.9") plot(x = altitude, y = recouvrement, pch = 16, cex = 8, col = modif_coul(COULEUR = "cadetblue",modh = 0.8), main = "modh = 0.8") plot(x = altitude, y = recouvrement, pch = 16, cex = 8, col = modif_coul(COULEUR = "cadetblue",alpha = 0.5), main = "alpha = 0.5")
\newpage
On peut aussi combiner les deux fonctions :
coul_taille_transp <- sapply(coul_taille, function(x) modif_coul(x, alpha = 0.5)) plot(x = altitude, y = recouvrement, pch=16, cex=8, col=coul_taille_transp)
\newpage
point.plot
Quasi identique ? l'utilisation de barres.plot
.. Le graphique de base :
point.plot(biomasse,traitement)
\newpage
Il y a plusieurs choses que l'on peut modifier pour personaliser son graphique :
changer le type d'erreur repr?sent?e
ajouter des lettres d'un test post-hoc
changer des param?tres classiques de la fonction barplot
changer l'ordre des modalit?s (?a ?a n'est pas sp?cifique ? la fonction point.plot
) et surajouter sur un graphique
par(mfrow=c(2,2)) #pour avoir 4 graphiques sur une m?me fen?tre point.plot(biomasse,traitement,ecart=sd) #erreur standard par d?faut, ici ?cart-type point.plot(biomasse,traitement,lettres=c("a","ab","b")) point.plot(biomasse,traitement,lettres=c("a","ab","b"), xlab="Traitements herbicides",ylab="Biomasse",font.lab=3, main="Efficacite des traitement") traitement2<-factor(traitement,levels=c("T3","T1","T2")) point.plot(biomasse,traitement2) point.plot(biomasse/2,traitement2, add = TRUE)
\newpage
multivar.polyg
La fonction multivar.polyg
permet de regrouper des points dans une analyse en faisant un polygone autour. On prends
Il faut :
ANAcoo
coordonnées des points d'une analyse multivariées (__$points
pour une NMDS, __$li
pour une AFC, etc.)FAC
facteur qui permettra de séparer les polygoneslibrary(vegan) data("dune") data("dune.env") NMDS <- metaMDS(dune)
multivar.polyg(ANAcoo = NMDS$points, FAC = dune.env$Use)
Avec d'autres arguments si besoin :
multivar.polyg(ANAcoo = NMDS$points, FAC = dune.env$Use, pch = 16, # forme des points des sites col_dot = c("darkolivegreen","cadetblue","firebrick") #couleur des points des sites )
multivar.polyg(ANAcoo = NMDS$points, FAC = dune.env$Use, col_fill = c("darkolivegreen","cadetblue","firebrick") #couleur des polygones )
Mieux vaux utiliser la fonction modif_coul
pour ajouter de la transparence :
multivar.polyg(ANAcoo = NMDS$points, FAC = dune.env$Use, col_fill = modif_coul(c("darkolivegreen","cadetblue","firebrick"),alpha = 0.5))
Et encore :
multivar.polyg(ANAcoo = NMDS$points, FAC = dune.env$Use, col_bord = c("darkolivegreen","cadetblue","firebrick"), #couleur des bordures des polygones col_text = c("darkolivegreen","cadetblue","firebrick"), #couleur du texte cex_lab = 1.5, # taille des étiquettes dot = "no" # présence ou non des points des sites )
Possibilité aussi avec les arguments lab
de ne pas afficher les étiquettes des modalités, new
de ne pas faire ça sur un nouveau graphe mais sur un graphe existant, et sep
de faire une nouvelle fenêtre pour chaque modalité du facteur.
\newpage
MultiDyn
\newpage
better_arrows
\newpage
label.corV2
La fonction label.corV2
permet de calculer les corrélations des espèces avec les axes et d'afficher seulement les plus corrélées.
Il y a plusieurs arguments obligatoires :
COO_ESP
Coordonnées des espèces suites à une ordination, pour les deux premiers axes, après dudi.pca
et dudi.coa
c'est ANALYSE$co[,1:2]
, après decorana
c'est ANALYSE$cproj[,1:2]
, après metaMDS
c'est ANALYSE$species[,1:2]
, etc.COO_REL
Coordonnées des relevés suites à une ordination, pour les deux premiers axes, après dudi.pca
et dudi.coa
c'est ANALYSE$li[,1:2]
, après decorana
c'est ANALYSE$rproj[,1:2]
, après metaMDS
c'est ANALYSE$points[,1:2]
, etc.RELEVES
les relevés ayant servi à faire l'analyse multivariéeMETHOD
Méthode de choix des espèces à afficher, soit "P"
(défaut) - les espèces dont le p du test de spearman sont inférieures à la valeur de P sur au moins un axe sont affichées, soit "RHO"
- les espèces dont le Rho du test de spearman sont supérieur à RHO sur au moins un axe sont affichées, soit "N_base_P"
- les N espèces dont le P sont les plus faibles sont affichées, soit "N_base_RHO"
- les N espèces dont les RHO sont les plus fort sont affichées.Selon la méthode choisie, vous devrez aussi renseigner :
P
la p value maximum pour être affichéeRHO
le Rho minimum pour être affichée N
le nombre d'espèces à afficher, attention, si des ex-aequo, pour ne pas surcharger, il y a moins d'espèces affichées que le N choisiEt éventuellement :
COEF
un coef multiplicateur (pour exploser ou non la dispersion dans le plan)ADD
par defaut, créer un graphe seul, si add=T, les noms d'especes sont ajouté au graphe déjà existant...
d'autres arguments de la fonction text
Pour l'exemple, on récupère les données dune
du package vegan
et on fait une NMDS :
library(vegan) data("dune") NMDS <- metaMDS(dune)
library(vegan) data("dune") NMDS <- metaMDS(dune)
\newpage
Usage de la fonction :
label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "P", P = 0.05)
plot(NMDS$points[,1:2]) label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "RHO", RHO = 0.5, ADD = T)
\newpage
label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "N_base_P", N = 10)
label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "N_base_RHO", N = 15)
\newpage
text
:label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "N_base_RHO", N = 15, col="cadetblue", cex=1.5, font = 3)
COEF
:plot(NMDS$species, ylim = c(-2, 2), xlim = c(-2,2)) label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "N_base_RHO", N = 15, col="cadetblue", cex=0.5, COEF = 0.5, ADD = T) label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "N_base_RHO", N = 15, col="cadetblue2", cex=1, COEF = 1.5, ADD = T) label.corV2(COO_ESP = NMDS$species[,1:2], COO_REL = NMDS$points[,1:2], RELEVES = dune, METHOD = "N_base_RHO", N = 15, col="cadetblue4", cex=1.5, COEF = 2, ADD = T)
\newpage
label.corDCA
\newpage
label.corNMDS
\newpage
BBtransf
Classes_def
combin.tab
combin.tabV0
ComStructIndices
structure.plot
structure.plotV2
``
``
``
``
``
``
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.