jframi a écrit :Bonjour,
J'utilise, le package lattice et la fonction histogram pour faire une representation de la distribution d'une variable suivant les différentes catégories d'un facteur binaire.
histogram(~x | facteur, data = tableau)
comme facteur a deux niveaux, ceci aboutit a 2 histogrammes, 1 pour chaque niveau.
Je cherche à faire apparaitre sur le meme graphique la distribution pour l'ensemble des observations, indépendamment du facteur.
J'imagine qu'on doit pouvoir s'arranger avec par(mfrow) ou split.screen,
Non: les modèles graphiques sont complètement différents entre les graphes "classiques" et lattice.
mais y a t-il directement une solution a partir des arguments passés a la fonction histogram ou des parametres du package lattice.
Merci,
JFR
Oui, mais pourquoi ne pas utiliser directement une densité: voir fct densityplot dans le package lattice.
Autrement, il faut écrire une fonction panel:
Code : Tout sélectionner
mydata <- data.frame(
x = rnorm(100) + rep(c(0, 1), each = 50),
z = rep(c("A", "B"), each = 50))
histogram(~ x | z, data = mydata, type = "density",
panel = function(x,...){
panel.histogram(x,...)
dens <- density(mydata$x)
llines(dens$x, dens$y, col = "red")
})
Mais je préfère:
Code : Tout sélectionner
densityplot(~ x | z, data = mydata,
panel = function(x,...){
panel.densityplot(x,...)
dens <- density(mydata$x)
llines(dens$x, dens$y, col = "red")
},
key = list(space = "top",
text = list(c("Panel", "Global")),
lines = list(col = c("blue", "red"))))