J’ai réalisé un graphique des fréquences de détection des molécules d’une station donnée pour chaque période (1, 2,3). Sur l’axe des ordonnées j’ai le nom des molécules. J’aimerai définir une couleur de texte (molécule) en fonction de sa famille d’appartenance (il existe 3 familles).
Structure de ma base:
Code : Tout sélectionner
Molecule Value Periode Station Famille
Atrazine 10% 1 A HERB
Glyphosate 30% 1 B FONG
Fluopyram 50% 1 C INS
AMPA 23% 1 A HERB
AMPA 20% 2 B HERB
AMPA 15% 3 C HERB
...... ......... ........ ........... ..........
Script
Code : Tout sélectionner
e<-ggplot(mdata_A_P, aes(reorder(Molecule, value, sum),value , fill = variable)) +
geom_bar(aes(),stat = "identity", width=0.8)+
geom_hline(yintercept=20, color="black", linetype = "dashed", size=0.8) +
coord_flip()+
theme_bw()+
scale_y_continuous(breaks=c(0,10,20,30, 40,50, 60,70, 80,90, 100), labels = c("0","10%","20%","30%", "40%","50%", "60%","70%", "80%","90%", "100%"))+
scale_x_discrete(limits=c("Atrazine", "Fluopyram", "Thiafluamide", "AMPA ", "Glyphosate"…… )+
scale_fill_manual(values=c("#ec7063","#f8c471", "#73c6b6"))+
facet_grid(Station ~ Periode)+
labs(fill = element_blank())+
theme(legend.position = "top", axis.title.x = element_blank(), axis.title.y = element_blank(),axis.text.y = element_text( hjust=1, vjust=1, size=7, color="grey30"),axis.text.x = element_text( angle=55, hjust=1, vjust=1, size=7.5, color="grey30"),plot.margin = unit(c(0,0,0,0), "cm"), strip.background.y = element_rect(fill="#E2DDD4"), strip.text.y = element_text( size = 9, color = "grey30", face = "bold" ), strip.background.x = element_rect(fill="#E2DDD4"), strip.text.x = element_text( size = 9, color = "grey30", face = "bold" ))
e
Merci d'avance pour votre aide!