Section 27 Two Factors
27.1 Bar & Mosaic plot
The function geom_bar
creates a bar plot with vertical or horizontal bars.
27.1.1 Example 1
data(mpg)
str(mpg)
Classes 'tbl_df', 'tbl' and 'data.frame': 234 obs. of 11 variables:
$ manufacturer: chr "audi" "audi" "audi" "audi" ...
$ model : chr "a4" "a4" "a4" "a4" ...
$ displ : num 1.8 1.8 2 2 2.8 2.8 3.1 1.8 1.8 2 ...
$ year : int 1999 1999 2008 2008 1999 1999 2008 1999 1999 2008 ...
$ cyl : int 4 4 4 4 6 6 6 4 4 4 ...
$ trans : chr "auto(l5)" "manual(m5)" "manual(m6)" "auto(av)" ...
$ drv : chr "f" "f" "f" "f" ...
$ cty : int 18 21 20 21 16 18 18 18 16 20 ...
$ hwy : int 29 29 31 30 26 26 27 26 25 28 ...
$ fl : chr "p" "p" "p" "p" ...
$ class : chr "compact" "compact" "compact" "compact" ...
# Single factor
g <- ggplot(data=mpg, mapping=aes(x=class))
g <- g + geom_bar()
g
# Two factors
g <- ggplot(data=mpg, mapping=aes(x=class))
g <- g + geom_bar()
g <- g + geom_bar(aes(fill=drv))
g + theme_bw()
# coord_flip
g <- ggplot(data=mpg, mapping=aes(x=class))
g <- g + geom_bar()
g <- g + geom_bar(mapping=aes(fill=drv))
g <- g + coord_flip()
g + theme_bw()
# Interaction
mpg$class_drv <- paste0(mpg$class, '_', mpg$drv)
g <- ggplot(data=mpg, mapping=aes(x=class_drv))
g <- g + geom_bar(aes(fill=class))
g + theme_bw()
27.1.2 Example 2
data(HairEyeColor)
x <- HairEyeColor[,,2]
DF <- as.data.frame(x)
# position = 'stack'
g <- ggplot(data=DF, mapping=aes(x=Eye, fill=Hair))
g <- g + geom_bar(mapping=aes(weight=Freq), position='stack')
g <- g + scale_fill_manual(values = c('black','brown','red','yellow'))
g <- g + labs(title='Hair and Eye colour of Female')
g + theme_bw()
# position = 'dodge'
g <- ggplot(data=DF, mapping=aes(x=Eye, fill=Hair))
g <- g + geom_bar(mapping=aes(weight=Freq), position='dodge')
g <- g + scale_fill_manual(values = c('black','brown','red','yellow'))
g <- g + labs(title='Hair and Eye colour of Female')
g + theme_bw()