#' @title Graphe des accroissements
#'
#' @description Cette fonction réalise un graphe qui pr?sente l'accroissement des variables dendrom?trique de peuplement en fonction de l'?ge
#'
#' @param x : variables des abscisses, ?gale ? "age" ou "an_vegetation"
#' @param y : variables des abscisses, peut ?tre ?gale ? "a.Ho", "a.Do100", "aGha" ou toute autre variable num?rique de la table accroiss
#' @param couleur : variable des couleurs, ?gale ? "lib_disp", "co_trait1" ou "co_ess_princ" ou toute autre variable factorielle de la table plac
#' @param accroiss : table contenant les accroissements peuplement par p?riode, sortie de intervalle_ch.
#' @param plac : table unite issu de la fonction load_xls_to_R_ch(format = "R") ou de load_bdd_to_R_ch
#' @param theme_coop : liste des param?tres graphiques de ggplot, ? remplir avec la fonction theme(). Par d?faut, theme_bw().
#' @return graphique des accroissements de chaque placette
#'
#' @author Quentin Girard
#' @references Protocole Coop chene... document d Ingrid et Claudine
#'
#' @seealso load_xls_to_R_ch, load_bdd_to_R_ch, intervalle_ch
#' @examples
#' a venir
#'
#' @keywords function
#'
#' @include coopR-package.R
#' @family coopR
#' @export
#' @importFrom ggplot2 ggplot
graph_accroissement_ch <- function(x = "age", y = "a.Do100", couleur = "lib_disp", accroiss = NA, plac = NA, theme_coop = theme_bw()) {
# v?rification de accroiss et plac
if (is.null(accroiss)) {
stop("accroiss doit ?tre renseign?. Il s'agit de la table issue de la fonction intervalle_ch")
}
if (is.null(plac)) {
stop("plac doit ?tre renseign?. Il s'agit des tables de type 'unite' issues des fonction de chargement au format R")
}
# variables
tp <- merge(accroiss, plac, by = "id_unite")
if (length(setdiff(c(x, y, couleur), names(tp))) != 0) {
stop("L'une des variables que vous voulez presenter dans le graphe n'est pas presente dans les tables. Verifiez")
}
if (length(setdiff(c("pl_sp"), names(tp))) != 0) {
stop("Il manque la nature de l'unite de suivi (pl_sp) dans les tables. Verifiez")
}
tp$x <- tp[,x]
tp$y <- tp[,y]
tp$couleur <- as.character(tp[,couleur])
#ordre des mesures
tp <- tp[with(tp, order(id_unite, no_mesure.i)),]
tp$ordre <- 1:nrow(tp)
# etendue de la fenetre graphique
range_x <- range(tp$x, na.rm = T)
range_x <- range_x + (range_x[2] - range_x[1])* c(-1, 1) /10
range_y <- range(tp$y, na.rm = T)
range_y <- range_y + (range_y[2] - range_y[1])* c(-1, 1) /10
# reference graphique: couleur utilis?e pour les graphes
list_couleur_RDI <- c("RDI 0" = "black", "RDI 0.25" = "purple", "RDI 0.5" = "orange", "RDI 1" = "red",
"RDI croissant" = "blue", "RDI decroissant" = "chocolate", "Detourage" = "forestgreen")
# les choix des couleurs des courbes et points
if (couleur == "co_traitement") {
list_reference <- scale_colour_manual(values = list_couleur_RDI, name = "Scenario")
} else if (length(unique(tp[,couleur])) <= 7) {
list_reference <- scale_colour_manual(values = c("forestgreen","red","blue","black","purple","orange","chocolate"), name = couleur)
} else {
list_reference <- list()
}
# graphe
g <- ggplot(tp) +
geom_path(aes(x = x, y = y, colour = couleur, group = id_unite, order = ordre, linetype = pl_sp)) +
geom_point(aes(x = x, y = y, colour = couleur, shape = pl_sp), size = 3) +
scale_shape_manual(values = c("pl" = 16, "sp" = 1), labels = c("pl" = "Placette", "sp" = "Sous-placette"), name = "Sous-unite") +
scale_linetype_manual(values = c("pl" = "solid", "sp" = "dashed"), labels = c("pl" = "Placette", "sp" = "Sous-placette"), name = "Sous-unite")+
theme_coop +
list_reference +
coord_cartesian(xlim = range_x, ylim = range_y) +
labs (x = x, y = y, colour = couleur) +
ggtitle(label = paste(y, "en fonction de", x))
print(g)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.