Ce sont mes données:
type<-rep(c(0,1),100)
diff<-rnorm(100)
data<-data.frame(type,diff)
Si je veux tracer l'historgramme de diff
, je fais ceci:
hist(data$diff)
Mais ce que je veux faire pour diviser mon histogramme en fonction de type
. Je pourrais faire ça:
par(mfrow=c(1,2))
hist(data$diff[data$type==0])
hist(data$diff[data$type==1])
Mais ce que cela me donne, ce sont deux histogrammes différents côte à côte. Ce que je veux faire, c'est produire un seul histogramme avec diff
de 0
d'un côté et diff
de 1
de l'autre côté. Quelque chose comme ça avec des barres aussi continues sans les ruptures ou la bordure entre les deux. Cela signifierait probablement que l'axe sera divisé en deux pour chaque facteur.
Vous pouvez utiliser le ggplot2
paquet:
library(ggplot2)
ggplot(data,aes(x=diff))+geom_histogram()+facet_grid(~type)+theme_bw()
Vous pouvez également les mettre sur le même terrain en les "esquivant":
ggplot(data,aes(x=diff,group=type,fill=type))+
geom_histogram(position="dodge",binwidth=0.25)+theme_bw()
Si vous souhaitez qu'ils se chevauchent, la position doit être position="identity"
ggplot(data,aes(x=diff,group=type,fill=type))+
geom_histogram(position="identity",alpha=0.5,binwidth=0.25)+theme_bw()
Si vous voulez qu'ils ressemblent à cela dans le premier mais sans la bordure, vous devez le pirater un peu:
data$diff[data$type==1] <- data$diff[data$type==1] + 6
ggplot(data,aes(x=diff,group=type,fill=type))+
geom_histogram(position="identity",alpha=0.5,binwidth=0.25)+theme_bw()+
scale_x_continuous(breaks=c(-2:2,4:8),labels=c(-2:2,-2:2))
Ce tracé a été réalisé à l'aide du package de treillis
set.seed(1)
type<-rep(c(0,1),100)
diff<-rnorm(100)
data<-data.frame(type,diff)
library('lattice')
histogram(~ diff | type, data = data)
voici comment vous pouvez le faire dans les graphiques de base
## first plot - left half of x-axis, right margin set to 0 lines
par(fig = c(0, .5, 0, 1), mar = c(5,4,3,0))
hist(data$diff[data$type==0], ann = FALSE, las = 1)
## second plot - right half of x-axis, left margin set to 0 lines
par(fig = c(.5, 1, 0, 1), mar = c(5,0,3,2), new = TRUE)
hist(data$diff[data$type==1], ann = FALSE, axes = FALSE)
axis(1)
axis(2, lwd.ticks = 0, labels = FALSE)
title(main = 'Histogram', xlab = 'x label', outer = TRUE, line = -2)