0% ont trouvé ce document utile (0 vote)
8 vues4 pages

Graphiques de rendement et absorption P

Le document présente un script R pour analyser des données sur l'application de phosphore (P) dans l'agriculture. Il inclut des fonctions pour calculer des moyennes et des écarts-types, ainsi que pour créer des graphiques standardisés des rendements et des contenus en P. Les graphiques sont ensuite combinés et sauvegardés dans un fichier PNG.

Transféré par

onizukaxv
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues4 pages

Graphiques de rendement et absorption P

Le document présente un script R pour analyser des données sur l'application de phosphore (P) dans l'agriculture. Il inclut des fonctions pour calculer des moyennes et des écarts-types, ainsi que pour créer des graphiques standardisés des rendements et des contenus en P. Les graphiques sont ensuite combinés et sauvegardés dans un fichier PNG.

Transféré par

onizukaxv
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

# Chargement des bibliothèques nécessaires

library(ggplot2)

library(plyr)

library(reshape2)

library(gridExtra)

library(Cairo)

# Fonction pour calculer moyennes et écarts-types

data_summary <- function(data, varname, groupnames){

summary_func <- function(x, col){

c(mean = mean(x[[col]], [Link]=TRUE),

sd = sd(x[[col]], [Link]=TRUE))

data_sum <- ddply(data, groupnames, .fun=summary_func, varname)

data_sum <- rename(data_sum, c("mean" = varname))

return(data_sum)

# Importation et préparation des données

VlirRF <- [Link]("D:/Méthode de recherche/[Link]",sep=",",header=TRUE)

# Conversion des variables en facteurs

VlirRF$FYM <- [Link](VlirRF$FYM)

VlirRF$P_TSP <- [Link](VlirRF$P_TSP)

VlirRF$Year <- [Link](VlirRF$Year)

# Filtrage des données avec NK="Y"

Vlir2 <- VlirRF[which(VlirRF$NK=="Y"),]


# Calcul des données résumées pour chaque variable

data_gy <- data_summary(Vlir2, varname="GY", groupnames=c("Year", "FYM", "TotP"))

data_pcontent <- data_summary(Vlir2, varname="P_gr", groupnames=c("Year", "FYM", "TotP"))

data_puptake <- data_summary(Vlir2, varname="TotP.up_st_gr", groupnames=c("Year", "FYM", "TotP"))

# Fonction pour créer un graphique standardisé

create_plot <- function(data, y_var, y_label, y_lim, show_legend=TRUE) {

p <- ggplot(data, aes(x=TotP, y=get(y_var))) +

geom_point(aes(shape=FYM, color=FYM), size=4) +

geom_smooth(se=FALSE, method="lm", aes(linetype=FYM, group=FYM, color=FYM)) +

theme_bw() +

facet_grid(.~Year) +

labs(x=expression(bold(paste("Application totale de P (kg P ", ha^-1)))) +

labs(y=y_label) +

theme(text=element_text(size=16)) +

theme(

[Link].x=element_text(color="black", size=16, vjust=0.5),

[Link].y=element_text(color="black", size=16, vjust=0.5)) +

theme(

[Link].x=element_text(colour="black", size=16, face="bold", vjust=0.1),

[Link].y=element_text(colour="black", size=16, face="bold", vjust=1)) +

geom_errorbar(aes(ymin=get(y_var)-sd, ymax=get(y_var)+sd, color=FYM),

width=.2, position=position_dodge(0.05)) +

theme([Link]=element_blank(),

[Link]=element_line(colour="black")) +

scale_shape_manual(values=c(15, 16, 17)) +

theme([Link].x=element_text(size=16, colour="black", face="bold", angle=0)) +

ylim(y_lim[1], y_lim[2])
if(show_legend) {

p <- p + theme([Link]=c(0.95,0.2))

} else {

p <- p + theme([Link]="none")

return(p)

# Création des graphiques individuels

gy_plot <- create_plot(data_gy, "GY",

expression(bold(paste("Rendement grainier (Mg ", ha^-1))),

c(0,7), TRUE)

pcontent_plot <- create_plot(data_pcontent, "P_gr",

expression(bold(paste("Contenu en P du grain (mg P ", ha^-1))),

c(0, max(data_pcontent$P_gr + data_pcontent$sd, [Link]=TRUE)), FALSE)

puptake_plot <- create_plot(data_puptake, "TotP.up_st_gr",

expression(bold(paste("Absorption totale de P (mg P ", ha^-1))),

c(0, max(data_puptake$TotP.up_st_gr + data_puptake$sd, [Link]=TRUE)), FALSE)

# Combinaison des graphiques

combined_plot <- [Link](gy_plot, pcontent_plot, puptake_plot, ncol=1)

# Sauvegarde de la figure combinée

ggsave("Figure_Exercice_trois.png", combined_plot,

width=10, height=12, dpi=500, device="png")


# Affichage d'un message de confirmation

message("Les graphiques ont été générés avec succès et sauvegardés dans 'Figure_Exercice_trois.png'")

Vous aimerez peut-être aussi