Je cherche à réaliser des histogrammes de deux sous-populations avec en ordonnées les pourcentages et non le nombre d'individus, avec une barre de pointillés pour bien voir où se situe 0.
Comme je ne sais pas faire la barre de pointillés avec Lattice, j'ai essayé avec Ggplot2 et je suis surprise par deux choses :
- dans ggplot2 avec le paramètre aes(y=..density..), il me semble que je devrais obtenir des ordonnées entre 0 et 1. Si c'est entre 0 et 100, ça me va aussi mais qu'ai-je fait de particulier qui a changé ça ?
- les hauteurs en pourcentage pour chaque barre de l'histogramme ne sont pas les mêmes entre lattice et ggplot2. Pourquoi ?
Voici le code utilisé :
Les données à utiliser sont ici : https://drive.google.com/file/d/163jD06 ... sp=sharing
Code : Tout sélectionner
library(dplyr)
library(ggplot2)
library(lattice)
merged <- read.csv("merged.csv", # le fichier
header = TRUE, # nom des colonnes
sep = ";", # séparateur de champ
dec = ",", # séparateur décimal
na.strings = "") # données mq.
str(merged) # contrôle du type des variables
head(merged) # affichage des 6 premières lignes
summary(merged) # le résumé des données
#dire que merged$CODETME01 est un facteur d'appartenance à une catégorie et non une valeur numérique
merged$CODETME01 <- as.factor(merged$CODETME01)
#Pop séparée
histogram(~ Var | CODETME01, data = merged, nint = 20, col="grey" ,type="percent")
#choix du nom de fichier puis enregistrement de l'histogramme
nom_fichier_histogramme <- paste(c("histogramme_TME01_2005_2018"),c("Var"),c(".png"))
dev.print(device = png, file = nom_fichier_histogramme, width = 600)
## histogrammes séparés avec ggplot pour avoir la barre de pointillés sur le 0
# aes(y=..density..), permet que ce soit en densité (entre 0 et 1 normalement et non en nombre)
histos<- ggplot(merged, aes(x=Var, color=CODETME01)) +
geom_histogram(fill="white", aes(y=..density..), position="dodge",breaks=seq(-0.15, 0.15, by=0.015)) +scale_color_grey() +
theme(legend.position="top") + facet_grid(CODETME01 ~ .) + geom_vline(aes(xintercept=0),
linetype="dashed", size=0.5)
histos
#enregistrement image
nom_fichier_histo_separes <- paste(c("histo_separes_avecbarre0"),c("Var"),c("resultat"),c(".png"))
dev.print(device = png, file = nom_fichier_histo_separes, width = 600)
Merci d'avance pour votre aide