Cap 6 Histograma

Definição: uma uma representação gráfica em formato de retângulos cuja área é proporcional à frequência de uma variável quantitativa e cuja largura é igual ao intervalo de classe.

Para que serve: Um histograma é uma representação gráfica da distribuição de uma variável quantitativa contínua. Com o histograma pode-se visualizar a dispersão/concentração dos dados, bem como a assimetria/simetria dos dados. É muito utilizado para visualizar toda a distribuição de uma variável quantitativa. Foi introduzida pela primeira vez por Karl Pearson (OBS - É muito parecido com o gráfico de barras).

par(bg="#fdf6e3") 
data(mtcars)
hist(mtcars$mpg,col="steelblue")

6.1 Histograma

library(RColorBrewer)
par(bg="#fdf6e3") 
#display.brewer.all()
COR<-brewer.pal(5,"Blues")

#COR
hist(mtcars$mpg,col=COR,main="Histograma do MPG",xlab = "Milhas por Galão - MPG", ylab = "Frequência")

COR<-brewer.pal(5,"YlGn")
hist(mtcars$mpg,col=COR, scale="percent",main="Histograma do MPG",xlab = "Milhas por Galão - MPG", ylab = "Percentual")

6.2 Histograma no ggplot2

par(bg="#fdf6e3") 
library(ggplot2)
ggplot(mtcars, aes(mpg)) +
  geom_histogram()

# Change color
ggplot(mtcars, aes(mpg)) +
  geom_histogram(color="#45ad8a", fill="#417f6a")

6.3 Modificação do Histograma no ggplot2

par(bg="#fdf6e3") 
library(ggplot2)
ggplot(mtcars, aes(y =..density..,mpg, fill = factor(am)))+
  geom_histogram(binwidth = 1.5)

ggplot(mtcars, aes(y =..density..,mpg, fill = factor(am)))+
  geom_histogram(binwidth = 1.5)+
  geom_density(alpha = .1) 

6.4 Histograma Avançado no ggplot2

par(bg="#fdf6e3") 
df <- data.frame(
  sex=factor(rep(c("F", "M"), each=200)),
  weight=round(c(rnorm(200, mean=55, sd=5), rnorm(200, mean=65, sd=5)))
  )
head(df)
##   sex weight
## 1   F     56
## 2   F     58
## 3   F     43
## 4   F     51
## 5   F     53
## 6   F     46
library(ggplot2)
p<-ggplot(df, aes(x=weight)) + 
  geom_histogram()
# Add mean line
p+ geom_vline(aes(xintercept=mean(weight)),
            color="blue", linetype="dashed", size=1)

ggplot(df, aes(x=weight, fill =sex, color=sex)) +
  geom_histogram(alpha=0.8, position="identity")

# Change line colors by groups
ggplot(df, aes(x=weight, fill =sex, color=sex)) +
  geom_histogram(alpha=0.8, position="identity")+
  scale_color_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  scale_fill_manual(values=c("#999999", "#E69F00", "#56B4E9"))+
  labs(title="Histograma no ggplot2",x="Peso(kg)", y = "Contagem")+
  theme_classic()

6.5 Alternativas ao Histograma

6.6 Histograma por grupos ‘Stack’

par(bg="#fdf6e3") 
library(plotrix)
df<-data.frame(len=rnorm(100)+5,
   grp=sample(c("A","B","C","D"),100,replace=TRUE))
  histStack(len~grp,data=df,main="Histograma por grupos",
   xlab="grupos")

6.7 Back to back histogramas

#Back to back histograms
# data
var1<- rnorm(1000,10,3)
var2 <- sample(c('A','B'),1000,TRUE)
#plot
 require(Hmisc)
 out <- histbackback(split(var1, var2), probability=TRUE, xlim=c(-.18,.18), main ='Back to Back Histogram')