Je souhaite créer un graphique de barres empilées avec sur l'axe des x mes parcelles et des histogrammes qui sont "dodge" selon la variable Type ("Grain", "Paille" et "Adventices"). J'aimerais que pour chaque type cela me "stack" les valeurs par Espèce Mesurée. De plus, j'aimerais que les couleurs soient uniques (exemple : pour les pailles différentes catégories de jaune par espèce ou différentes nuances de transparence).
Ci-dessous le code où je bloque et je n'arrive pas à empiler les barres (elles se superposent simplement et s'empilent pas).
Code : Tout sélectionner
ggplot(df, aes(x = Parcelle, y = mean_Poid_sec, fill = Type)) +
geom_bar(position = position_dodge(width = 0.9), stat = "identity") +
ggh4x::facet_grid2(~Culture, scales = "free", space = "free") +
geom_errorbar(aes(ymax = mean_Poid_sec + se_Poid, ymin = mean_Poid_sec - se_Poid),
position = position_dodge(width = 0.9), width = 0.2, linewidth = 0.5) +
theme_bw() +
labs(y = "Biomasse sèche (T/ha)", x = "") +
scale_y_continuous(breaks = seq(0, max(df[[i]]$mean_Poid_sec), by = 1))
Merci beaucoup pour votre aide car je n'arrive déffinitivement pas à trouver une solution
Corentin
############################
Voici la structure de ma base de donnée :
Code : Tout sélectionner
# Création des données pour Grain
data_grain <- data.frame(
Parcelle = rep(c("Parcelle1", "Parcelle2"), each = 4), # Exemple de noms de parcelles
EspeceMesuree = c("Epeautre", "Feverole", "Triticale", "Pois"),
Type = "Grain",
mean_Poid_sec = c(4.2, 3.8, 3.5, 4.0), # Valeurs moyennes de poids fictives pour le grain
se_Poid = c(0.5, 0.6, 0.4, 0.7) # Écarts types fictifs
)
# Création des données pour Paille
data_paille <- data.frame(
Parcelle = rep(c("Parcelle1", "Parcelle2"), each = 4), # Exemple de noms de parcelles
EspeceMesuree = c("Epeautre", "Feverole", "Triticale", "Pois"),
Type = "Paille",
mean_Poid_sec = c(3.8, 3.4, 3.1, 3.6), # Valeurs moyennes de poids fictives pour la paille
se_Poid = c(0.4, 0.5, 0.3, 0.6) # Écarts types fictifs
)
# Création des données pour Adventices
data_adventices <- data.frame(
Parcelle = rep(c("Parcelle1", "Parcelle2"), each = 1), # Exemple de noms de parcelles
EspeceMesuree = "Adventices",
Type = "Adventices",
mean_Poid_sec = 2.0, # Valeur moyenne fictive pour les adventices
se_Poid = 0.3 # Écart type fictif pour les adventices
)
# Fusionner les données
base_de_donnees <- rbind(data_grain, data_paille, data_adventices)